我正在编写一个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

您可以使用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或其他输出

  ask by user1926550 translate from so

未解决问题?本站智能推荐:

3回复

重定向bas​​h中的输出

这是我想做的事情: time sh -c "dd if=/dev/zero of=ddfile bs=512 count=125 && sync" 在shell上运行时,o / p为 我想将输出捕获到变量或文件中。 我怎么做 ? 谢谢!
1回复

在C ++中重定向bas​​h stdin和stdout

我需要帮助才能完成以下工作。 我需要从c ++开始一个bash进程,此bash进程需要接受来自stdin的输入,并按照正常的输出将其输出到stdout。 从另一个过程中,我需要向stdin编写命令,然后将按照上述操作实际在bash中执行,然后我对stdout的结果感兴趣。 到目前为
2回复

如何重定向bas​​h中的警告?

我正在尝试重定向shell脚本中的警告。 我知道要重定向 但是我要重定向的是来自if语句的警告。 就像是: 但是当我这样做时,我的输出也将变为空。 我的意思是,如果条件为true,那么通常我进入if块,并显示一条警告消息,显示“预期为整数表达式”,并且一切正常。 但是,当
3回复

重定向bas​​h:来自变量的内容,而不是来自文件的内容

我正在使用mutt来创建和发送来自bash脚本的邮件。 像这样: $ mutt -s SUBJECT MAIL_TO_ADDRESS <BODY_CONTENT_FILE 所以我总是在调用mutt之前编写一个文件,是否有直接从脚本或shell变量传递信息的解决方案?
1回复

Bash重定向编码错误

我将用Python编写的服务器的stdio重定向到一个文件: 输入通过使用XMLRPC库的client.py传输。 如果传输UTF-8输入,则在执行任何操作之前会收到UnicodeEncodeError。 这里的好奇心是:如果我不重定向server.py的stdoutput,则不
1回复

bash脚本中的歧义重定向错误[重复]

这个问题已经在这里有了答案: 收到“歧义重定向”错误 8个答案 以下代码行分别对应于歧义重定向错误。 第62行:$ xml:歧义重定向 第76行:$ xml:歧义重定向 环顾该站点,似乎此问题源于变量周围没有双引号,但是如果将$ xml更改为“
1回复

BAST重定向时BASH tput错误

编写一个应在终端上显示错误并将其保存到stderr的函数 不幸的是,这将产生 我了解这是由于问题,但我无法弄清原因。 我不太在意stderr中是否有颜色,但我想将它们保留在显示器上。
2回复

如何重定向错误消息以邮寄给某人

是的,我不需要bash脚本。 我只想将错误消息重定向到email.So所以写了这样的命令: 我知道这是不对的,我只想知道如何使其正确。 谢谢!
2回复

Bash IF退出代码重定向错误

我现在正在编写一个bash脚本,该脚本具有一条语句来检查目录中是否包含内容。 现在,代码是 但是,当文件夹确实为空时,我希望抑制ls中的错误。 通常,它会说“没有这样的文件或目录”,但是我想将其重定向到/ dev / null。 我试着做 确实按我的意愿将所有内容重
2回复

歧义重定向

我正在尝试转到当前目录和所有子目录,并在每个以.sql结尾的文件中添加一些注释 这是一段代码 我是bash的初学者,所以我认为我收到的一些错误可能是由于带有循环的find语句引起的,但这是我得到的错误 任何帮助将不胜感激=)