Мне нужно выполнить несколько команд, используя nohup
. Каждая команда должна быть выполнена после предыдущей команды.
Я использовал эту команду в качестве примера:
nohup wget $url && wget $url2 > /dev/null 2>&1 &
Однако эта команда не сработала.
Какую команду я должен использовать для этой цели?
shell
command-line
nohup
Ehsan
источник
источник
Не было бы намного проще создать свой список команд в отдельном файле оболочки, например, command.sh, без какого-либо nohup.
Тогда вы звоните:
источник
Другие уже ответили о
nohup
. В качестве практического примечания: я рекомендую делать подобные вещи в течение сессииscreen
илиtmux
сессии. Таким образом, вы можете отключиться, а затем подключиться позже и увидеть результат и конечный результат.источник
Было бы проще так:
Это, однако, может вызвать проблемы, если URL-адреса содержат специальные символы, поэтому для более безопасного варианта вы можете использовать:
источник
sh -c
осуществляется через отдельные аргументы, которые могут быть доступны с помощью позиционных параметров ($0
,$1
, ...). Нет простого или простого способа правильно процитировать аргументы для разбора строки. Ваша попытка использовать экранированные двойные кавычки не удалась, если$url
сама содержит двойные кавычки. Попробуйтеa='problem"'; sh -c "echo \"$a\""
сами и посмотрите - вы должны получить синтаксическую ошибку, потому чтоsh -c
пытается запуститьecho "problem""
.$url
и способах$url2
их использования.