On Tue, Jun 2, 2015 at 9:08 AM, Wheatley, Martin R < martin.wheat...@ccfe.ac.uk> wrote: > a truss of "bash -ls" shows it stat'ing '-bash' in each of the directories > in PATH... > > 11933: stat64("/usr/bin/-bash", 0xFFBFEBE8) Err#2 ENOENT > 11933: stat64("/usr/sbin/-bash", 0xFFBFEBE8) Err#2 ENOENT > 11933: stat64("/usr/dt/bin/-bash", 0xFFBFEBE8) Err#2 ENOENT > 11933: stat64("/home/USER/bin/-bash", 0xFFBFEBE8) Err#2 ENOENT > > Why does bash do all these 'stat()' system calls? We tried providing an > executable '-bash' at one of the locations but it didn't appear to have > any effect.
I believe this is bash trying to set the BASH environment variable. You say creating a file `-bash' has no effect, but how would stat return ENOENT if there were a file `/usr/bin/-bash'? If this is on the local machine, it should be searched (and found) before any NFS directories are checked. What other consequences this might have I'm not sure. I don't think bash uses BASH for anything. Could you send a truss of the case where /usr/bin/-bash exists and is executable? > If one of the directories in the PATH is on an NFS server that is > 'down' then bash hangs - which disables a shell which would otherwise > be usable. It is ironic yet somehow appropriate that a fusion energy center should be having such a 1997 sort of problem today. But truly, my sympathies. :-) Dave