重定向bash错误



我正在写一个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或其他输出

最新更新