J'ai besoin d'exécuter plusieurs commandes en utilisant nohup
. Chaque commande doit être exécutée après la commande précédente.
J'ai utilisé cette commande comme exemple:
nohup wget $url && wget $url2 > /dev/null 2>&1 &
Cependant, cette commande n'a pas fonctionné.
Quelle commande devrais-je utiliser à cette fin?
shell
command-line
nohup
Ehsan
la source
la source
Ne serait-il pas beaucoup plus simple de créer votre liste de commandes dans un fichier shell séparé, par exemple command.sh, sans nohup.
Ensuite, vous appelez:
la source
D'autres ont déjà répondu à propos de
nohup
. Note pratique: je recommande de faire ce genre de chose dans une sessionscreen
outmux
. De cette façon, vous pouvez vous déconnecter, puis vous reconnecter plus tard et voir la sortie et le résultat final.la source
Ce serait plus simple comme ça:
Cela peut toutefois poser problème si les URL contiennent des caractères spéciaux. Pour une option plus sûre, vous pouvez utiliser:
la source
sh -c
fait par des arguments distincts, qui peuvent être accessibles via les paramètres de position ($0
,$1
, ...). Il n’existe pas de moyen simple ni facile de citer des arguments correctement pour l’analyse de chaînes. Votre tentative d'utilisation de guillemets doubles échappés échoue si$url
elle - même contient des guillemets doubles. Essayeza='problem"'; sh -c "echo \"$a\""
vous-même et voyez - vous devriez avoir une erreur de syntaxe parce que vous essayezsh -c
de courirecho "problem""
.$url
et$url2
sont utilisés.