0

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

4

1 回答 1

0

您可以使用重定向所有错误消息到另一个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或其他输出

于 2016-05-10T18:45:04.420 回答