我宁愿不解析 STDERR,但我想不出另一种方法来以编程方式区分两者之间的区别:
$ ls /net/foo.example.com/bar/test
/net/foo.example.com/bar/test: Permission denied
$ ls /sdfsdf
/sdfsdf: No such file or directory
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么命令,它们似乎都返回相同的错误代码,所以这是一个死胡同:
$ 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
Run Code Online (Sandbox Code Playgroud)
我在 perl 中尝试了各种文件测试,但它们都返回相同的代码。