У меня есть скрипт 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
EDIT:
Было бы замечательно, если бы решение предоставило мне способ вывода чего-либо в «тихом» режиме, например когда что-то действительно не так, я могу получить уведомление от cron.