Emil wrote:
Bash runs interactive.
Not the one you traced; see below.
After some further investigation it turned out that you also need to use a function in your bash scripts to reproduce the bug. I have the following in my .bashrc mc () { MC=`/usr/bin/mc -P "$@"`; [ -n "$MC" ] && cd "$MC"; unset MC; }
This changes things significantly. The bash you traced is the one that is waiting for the `mc' in the command substitution to exit and reading its output -- that shell is not interactive. The difference is probably somewhere in the execution environment set up for command substitution. To make sure, try the following function and see if you get the same result: mc() { T=${TMPDIR:-/tmp}/mc-$$ /usr/bin/mc -p "$@" > $T es=$? read MC < $T rm -f "$T" [ -n "$MC" ] && cd "$MC" unset MC return $es } It is probably the different mechanisms for handling terminating signals in non-interactive shells. I might have a fix, but I have to be able to reproduce it, and I won't be back in front of a Linux machine to try until next week. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer Chet Ramey, ITS, CWRU [EMAIL PROTECTED] http://cnswww.cns.cwru.edu/~chet/