如何重定向重定向错误



考虑以下shellscript:

#!/bin/bash
echo test > /usr/lib/permDenied 2>&1 > /dev/null 
echo $?

这给了我以下错误:

$ ./test.sh 
./test.sh: line 2: /usr/lib/permDenied: Permission denied
1

如何使错误静音并获取错误代码?

搜索会找到这个,但这里有一个解释,为什么它在未来不起作用。

echo test > /usr/lib/permDenied 2>&1 > /dev/null

You first assign STDOUT to a file (STDOUT -> file) 
You then assign STDERR to STDOUT (STDOUT -> file; STDERR -> file) 
You then assign STDOUT to /dev/null (STDOUT ->/dev/null; STDERR -> file)

你不能写入文件,所以bash的STDERR仍然转到STDERR。

相关内容

  • 没有找到相关文章

最新更新