ls -alR | myprogram
如果有我无权访问的文件,它会给出一条错误消息,例如“文件权限被拒绝”。但是如何在我的程序中检测到这个错误呢?我试图测试stderr
. 但这似乎不起作用。
对于您的直接问题,您只是在这里管道标准输出。要同时捕获 stdout 和 stderr,请执行以下操作:
ls -alR 2>&1 | myprogram
请参阅Bash 手册中的http://www.gnu.org/software/bash/manual/bashref.html#Pipelines。
但是,尚不清楚您为什么要这样做。如果您想以编程方式处理目录列表,有比解析ls
. 如果您编辑您的问题以描述您的总体目标,我也许可以提供更具体的建议......