【发布时间】:2012-02-04 02:32:16
【问题描述】:
我有一个 bash 脚本,我希望在没有附加 tty 的情况下运行时保持安静(例如来自 cron)。 我现在正在寻找一种在一行中有条件地将输出重定向到 /dev/null 的方法。 这是我想到的一个示例,但我将在脚本中输出更多命令
#!/bin/bash
# conditional-redirect.sh
if tty -s; then
REDIRECT=
else
REDIRECT=">& /dev/null"
fi
echo "is this visible?" $REDIRECT
很遗憾,这不起作用:
$ ./conditional-redirect.sh
is this visible?
$ echo "" | ./conditional-redirect.sh
is this visible? >& /dev/null
我不想做的是复制带有重定向或不带有重定向变体中的所有命令:
if tty -s; then
echo "is this visible?"
else
echo "is this visible?" >& /dev/null
fi
编辑:
如果该解决方案能够为我提供一种以“安静”模式输出某些内容的方法,那就太好了,例如当确实有问题时,我可能希望得到 cron 的通知。
【问题讨论】:
标签: bash conditional io-redirection