重定向bas​​h错误

时间:2013-04-16 15:54:00

标签: bash redirect

我正在编写一个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但我不知道在这种特殊情况下如何使用它。

1 个答案:

答案 0 :(得分:0)

您可以使用EXEC

将所有错误消息重定向到另一个错误消息

进行测试,首先创建文件夹

mkdir /tmp/t/
sudo chown root /tmp/t/
sudo chgrp root /tmp/t/
sudo chmod 400 /tmp/t/

e.g:

ls -al /tmp/t/

输出:

ls: cannot open directory /tmp/t/: Permission denied

并首先使用EXEC文件:

exec 2>/dev/null
ls -al /tmp/t/

exec您可以控制并重定向所有error message或其他输出