Bernd Obermayr schrieb:
[...] Da bin ich platt ;)
Mit dem Script von Sascha gehts nicht, auch nicht mit declare. Allerdings: ---------8<---------- ps aux | grep "bash" > .tmp running="FALSE" while read line do running="TRUE" echo $running done < .tmp echo $running rm .tmp ---------8<---------- geht wieder. Es liegt wohl an der seltsamen (und unnötigen) Konstruktion mit der Pipe..
Aus dem Manual zu "bash": Each command in a pipeline is executed as a separate process (i.e., in a subshell). [...] If a command is terminated by the control operator &, the shell executes the command in the background in a subshell. [...] "(list)": list is executed in a subshell. [...] Command substitution and asynchronous commands are invoked in a subshell environment that is a duplicate of the shell environment, except that traps caught by the shell are reset to the values that the shell inherited from its parent at invocation. Builtin commands that are invoked as part of a pipeline are also executed in a subshell environment. Changes made to the subshell environment cannot affect the shell's execution environment. Da stehts eigentlich, oder? :-) Gruesse, Thomson *...der hier wieder mal was gelernt hat* -- Thomas Hertweck, Geophysicist Geophysical Institute, University of Karlsruhe