我宁愿不解析 STDERR,但我想不出另一种方法来以编程方式区分两者之间的区别:
$ ls /net/foo.example.com/bar/test
/net/foo.example.com/bar/test: Permission denied
$ ls /sdfsdf
/sdfsdf: No such file or directory
无论我尝试什么命令,它们似乎都返回相同的错误代码,所以这是一个死胡同:
$ ls /net/foo.example.com/bar/test
/net/foo.example.com/bar/test: Permission denied
$ echo $?
2
$ ls /sdfsdf
/sdfsdf: No such file or directory
$ echo $?
2
我在 perl 中尝试了各种文件测试,但它们都返回相同的代码。
而是测试文件。
有关其他可能性,请参见
test
手册页。其他答案并没有真正区分不同的情况,但是这个
perl
脚本可以:有关可能的错误代码,请参见
stat(2)
手册页。