Don, thank you. David, how did the official AT&T ksh88 (not Sun's ksh88) behaved in this case?
Olga 2010/4/6 Don Cragun <[email protected]>: > On Apr 6, 2010, at 1:55 AM, ольга крыжановская wrote: > >> For ksh93 the correct behaviour is what POSIX/SUS defines in this case. >> >> Don, do you know if POSIX/SUS covers this case? > > Olga, > The standard says (XBD4, P172, L5686-5687): > If PATH is unset or is set to null, the path search is > implementation-defined. > > - Don > >> >> Olga >> >> On Tue, Apr 6, 2010 at 9:46 AM, Michal Hlavinka <[email protected]> wrote: >>> Hi, >>> >>> we're still getting complains about inconsistent behavior with unset PATH >>> variable, so we'll have to fix it one way or the other. We'd like to know >>> what >>> behavior did you intend and what is correct so we won't differ in the >>> future. >>> >>> After 'unset PATH' only executables that are specified with full path works, >>> but man page mentions also executables in current directory should work: >>> >>> """The default path is /bin:/usr/bin: (specifying /bin, /usr/bin, and the >>> current directory in that order).""" >>> >>> We've found BASH has this behavior (current directory is used for default >>> path >>> after PATH is unset), but pdksh, mksh, zsh, csh does not work (only >>> executables with full path specified work). >>> >>> What behavior is correct for ksh? >>> >>> Thanks >>> Michal Hlavinka >>> >>> >>> >>> On Friday 05 March 2010 10:01:01 Tomáš Smetana wrote: >>>> Hello, >>>> the manual page for ksh says in the "Execution" section that "The >>>> default path is /bin:/usr/bin: (specifying /bin, /usr/bin, and the current >>>> directory in that order).". I don't think this is (always) correct -- at >>>> least on my i386 Linux machine: >>>> >>>> $ pwd >>>> /home/tsmetana >>>> $ touch foo.ksh >>>> $ chmod +x foo.ksh >>>> $ export PATH=/bin:/usr/bin: >>>> $ foo.ksh >>>> $ unset PATH >>>> $ foo.ksh >>>> ksh: foo.ksh: not found [No such file or directory] >>>> >>>> As you can see, when I explicitly set the PATH to what is supposed to be >>>> the default it searches the current directory. However the (real) default >>>> path seems to search only /bin and /usr/bin. >>>> >>>> The default search path seems to be configurable at the compile time and >>>> there is some inconsistency between the defaults in >>>> lib/libast/comp/conf.tab and cmd/ksh93/data/msg.c e_defpath[] constant >>>> which looks to be used in the case the ast configuration PATH value is not >>>> found. >>>> >>>> I believe that not having . in the default path is a more reasonable >>>> setting so I would like to ask you to fix the manual page and eventually >>>> change the fallback value too. Also it seems that this is not yet >>>> documented difference between ksh88 and ksh93. >>>> >>>> Thank you and regards. >>> >>> _______________________________________________ >>> ast-developers mailing list >>> [email protected] >>> https://mailman.research.att.com/mailman/listinfo/ast-developers >>> >> >> >> >> -- >> , _ _ , >> { \/`o;====- Olga Kryzhanovska -====;o`\/ } >> .----'-/`-/ [email protected] \-`\-'----. >> `'-..-| / Solaris/BSD//C/C++ programmer \ |-..-'` >> /\/\ /\/\ >> `--` `--` >> > > -- , _ _ , { \/`o;====- Olga Kryzhanovska -====;o`\/ } .----'-/`-/ [email protected] \-`\-'----. `'-..-| / Solaris/BSD//C/C++ programmer \ |-..-'` /\/\ /\/\ `--` `--` _______________________________________________ ast-developers mailing list [email protected] https://mailman.research.att.com/mailman/listinfo/ast-developers
