如何避免在 bash 脚本执行过程中出现错误消息?

如何避免在 bash 脚本执行过程中出现错误消息?

我需要编写一个 bash 脚本,它将查找string.h计算机上具有名称的所有文件并将它们复制到某个文件夹。我的代码在这里:

#!/bin/bash
sudo find / -type f -name "string.h" -exec cp {} $HOME/MyDocuments

但在执行脚本期间,我在控制台终端上收到错误消息“权限被拒绝”。请告诉我,如何才能避免收到此消息?控制台终端必须清晰。

答案1

如果您的查找尝试在您的用户没有读取权限的目录中移动,或者cp在您的行中尝试写入您无权访问的目录,则错误“权限被拒绝”是“正常”。您可以通过重定向 stderr 来抑制它们

#!/bin/bash
sudo find / -type f -name "string.h" -exec cp {} $HOME/MyDocuments \; 2>/dev/null

该模式2>/dev/null意味着将所有错误发送到“无地方”而不是标准错误。

但是发送错误消息并/dev/null不能解决您的命令没有读或写权限的错误。

相关内容