Copyright (C) 2000-2012 |
GNU Info (autoconf.info)File DescriptorsFile Descriptors ================ Some file descriptors shall not be used, since some systems, admittedly arcane, use them for special purpose: 3 --- some systems may open it to `/dev/tty'. 4 --- used on the Kubota Titan. Don't redirect several times the same file descriptor, as you are doomed to failure under Ultrix. ULTRIX V4.4 (Rev. 69) System #31: Thu Aug 10 19:42:23 GMT 1995 UWS V4.4 (Rev. 11) $ eval 'echo matter >fullness' >void illegal io $ eval '(echo matter >fullness)' >void illegal io $ (eval '(echo matter >fullness)') >void Ambiguous output redirect. In each case the expected result is of course `fullness' containing `matter' and `void' being empty. Don't try to redirect the standard error of a command substitution: it must be done _inside_ the command substitution: when running `: `cd /zorglub` 2>/dev/null' expect the error message to escape, while `: `cd /zorglub 2>/dev/null`' works properly. It is worth noting that Zsh (but not Ash nor Bash) makes it possible in assignments though: `foo=`cd /zorglub` 2>/dev/null'. Most shells, if not all (including Bash, Zsh, Ash), output traces on stderr, even for sub-shells. This might result in undesired content if you meant to capture the standard-error output of the inner command: $ ash -x -c '(eval "echo foo >&2") 2>stderr' $ cat stderr + eval echo foo >&2 + echo foo foo $ bash -x -c '(eval "echo foo >&2") 2>stderr' $ cat stderr + eval 'echo foo >&2' ++ echo foo foo $ zsh -x -c '(eval "echo foo >&2") 2>stderr' # Traces on startup files deleted here. $ cat stderr +zsh:1> eval echo foo >&2 +zsh:1> echo foo foo You'll appreciate the various levels of detail... One workaround is to grep out uninteresting lines, hoping not to remove good ones... Don't try to move/delete open files, such as in `exec >foo; mv foo bar', see Note: Limitations of Builtins, `mv' for more details. automatically generated by info2www version 1.2.2.9 |