Linux 在Bash脚本中隐藏输出
我有一个bash脚本,但它给了我讨厌的输出,我不想看到。当然,我可以用这种方式隐藏它:Linux 在Bash脚本中隐藏输出,linux,bash,shell,Linux,Bash,Shell,我有一个bash脚本,但它给了我讨厌的输出,我不想看到。当然,我可以用这种方式隐藏它: ./script.sh >/dev/null 2>&1 但是我想把脚本放在“rc.local”或“cron job”中,所以如果它每5分钟收到一次输出,或者在启动时收到一次输出,那将非常糟糕。如果有办法告诉整个脚本隐藏输出,那就太好了 如果要将脚本中的所有输出重定向到/dev/null,可以这样做(在这种情况下,仅当未设置环境变量DEBUG时才执行重定向): 您还可以检查输入是否来自TT
./script.sh >/dev/null 2>&1
但是我想把脚本放在“rc.local”或“cron job”中,所以如果它每5分钟收到一次输出,或者在启动时收到一次输出,那将非常糟糕。如果有办法告诉整个脚本隐藏输出,那就太好了 如果要将脚本中的所有输出重定向到
/dev/null
,可以这样做(在这种情况下,仅当未设置环境变量DEBUG
时才执行重定向):
您还可以检查输入是否来自TTY,以检测交互使用:
if [ -t 0 ]; then
# being run by a human, be extra verbose
PS4=':$LINENO+'
set -x
else
# being run by a daemon, be outright silent
exec >/dev/null 2>&1
fi
如果要将脚本中的所有输出重定向到
/dev/null
,请参阅。(在这种情况下,仅当未设置环境变量DEBUG
时才执行重定向):
您还可以检查输入是否来自TTY,以检测交互使用:
if [ -t 0 ]; then
# being run by a human, be extra verbose
PS4=':$LINENO+'
set -x
else
# being run by a daemon, be outright silent
exec >/dev/null 2>&1
fi
请参阅。我不是100%确定您在问什么-如果您永远不想看到输出,只需像现在这样重定向到
/dev/null
。也许可以提供一个更具体的例子来说明你在做什么?您可能会感兴趣的是,只有在命令成功的情况下才讨论禁止输出。您不能将/script.sh>/dev/null 2>&1
放在rc.local或crontab中吗?我不是100%确定您在问什么-如果您永远不想看到输出,只需像现在这样重定向到/dev/null
。也许可以提供一个更具体的例子来说明你在做什么?您可能会感兴趣的是,只有在命令成功时才讨论禁止输出。您不能将/script.sh>/dev/null 2>&1
放在rc.local或crontab中吗?