背景:
我想在受限制的bash的修改环境中测试一些bash脚本。在受限制的bash中,我不允许将流重定向到文件,例如2>/dev/null
我通过简单地用例如关闭流来找到解决方法。 2>&-
在这里和那里尝试时,我发现2>/dev/null
和2>&-
之间没有任何有效区别
STDERR输出被吞没,不会出现。
$ bash -c 'ls FOO'
ls: cannot access FOO: No such file or directory
$ bash -c 'ls FOO 2>/dev/null'
$ bash -rc 'ls FOO 2>/dev/null'
bash: /dev/null: restricted: cannot redirect output
$ bash -rc 'ls FOO 2>&-'
$ bash -rc 'ls FOO 2>&- ; ls BAR'
ls: cannot access BAR: No such file or directory
我猜bash中的处理方式不同但对我来说并不重要。对我来说重要的是,一般关闭而不是重定向到/ dev / null会导致任何问题吗?