Как мне получить nohup для выполнения [двойных] заключенных в кавычки внутренних команд?

Допустим, я хочу бежать echo вложенный в watch вложенный в nohup,

Начиная с нижней части стека:

echo test

С этим проблем нет.

watch -n 1 'echo test'
watch -n 1 "echo test"

Проблем с ними тоже нет.

nohup 'watch -n 1 "echo test"'
nohup "watch -n 1 'echo test'"

Проблемы с тем:

~$ nohup 'watch -n 1 "echo test"'
~$ nohup: ignoring input and appending output to ‘nohup.out’
~$ nohup: failed to run command ‘watch -n 1 "echo test"’: No such file or directory
~$ nohup "watch -n 1 'echo test'"
~$ nohup: ignoring input and appending output to ‘nohup.out’
~$ nohup: failed to run command ‘watch -n 1 'echo test'’: No such file or directory

Как мне получить nohup для выполнения [двойных] заключенных в кавычки внутренних команд?

1 ответ

Решение

nohup не ожидаю никаких кавычек. Он не знает, как с ними бороться.
Команда, которую вы хотите, это просто:

nohup watch -n 1 'echo test'

В этом случае вы даже можете обойтись без внутренних кавычек:

nohup watch -n 1 echo test

Просто осознавать, как nohup работает хоть. Он перенаправляет весь вывод довольно сырым способом. Вы не сможете контролировать вывод часов таким же образом.

Другие вопросы по тегам