我正在写一个bash脚本,它有一个问题:
path=$(pwd)
data=$(ls -al $path) > /dev/null 2>/dev/null
如果$path
是一个"锁定"目录(用户x没有权限),则出现问题,称其为"BadDir"。在这种情况下,程序输出:
ls: cannot access /home/user/.../BadDir/..: Permission denied
我想要隐藏这个输出。我知道有重定向到/dev/null
,但我不知道在这种情况下如何使用
您可以使用EXEC
将所有错误消息重定向到另一个
测试,首先创建文件夹
mkdir /tmp/t/
sudo chown root /tmp/t/
sudo chgrp root /tmp/t/
sudo chmod 400 /tmp/t/
例句:
ls -al /tmp/t/
输出:ls: cannot open directory /tmp/t/: Permission denied
和使用EXEC
优先文件:
exec 2>/dev/null
ls -al /tmp/t/
与exec
你可以控制和重定向所有error message
或其他输出