Возможно ли передать перенаправление в сценарий bash?
У меня была эта проблема раньше, и я обычно просто обходил ее, передавая параметры и используя их в качестве файловых перенаправлений. в соответствующих местах. В этом случае у меня была строка cron, которая не работала:
0 3 * * * /home/me/some.sh 2>&1 > /folder/I/cant/write/to.log
Я нашел этот трюк run-as-cron для проверки фактической команды (которая вызывает env -i <envs>
), например
./run-as-cron /home/me/some.sh
... но я не могу придумать, как передать перенаправление в сценарий (или изменить сценарий, чтобы разрешить его). Попробовал это:
./run-as-cron '/home/me/some.sh 2>&1 > /folder/I/cant/write/to.log'
/usr/bin/env: ‘/home/me/some.sh 2>&1 > /folder/I/cant/write/to.log’: No such file or directory
Что я отчасти ожидал.
Я чувствую, что борюсь с чем-то фундаментальным в bash, и его трудно найти, так как большинство мест просто объясняют bash перенаправление. Я бы хотел перестать игнорировать это, когда встретился с ним, или либо знаю, что это невозможно, либо еще немного bash маги c в моем распоряжении.