我需要使用 执行多个命令nohup
。每个命令应在前一个命令之后执行。
我用这个命令作为例子:
nohup wget $url && wget $url2 > /dev/null 2>&1 &
然而该命令不起作用。
我应该使用什么命令来实现此目的?
答案1
将其包裹在sh -c
:
nohup sh -c 'wget "$0" && wget "$1"' "$url1" "$url2" > /dev/null &
答案2
在单独的 shell 文件(例如 command.sh)中创建命令列表而不使用任何 nohup 不是更简单吗?
然后你打电话:
nohup bash command.sh
答案3
其他人已经回答了nohup
。作为一个实用的旁注:我建议在一个screen
或多个会话中执行此类操作tmux
。这样您就可以断开连接,然后重新连接并查看输出和最终结果。
答案4
一个更复杂的例子:
nohup sh -c 'echo $SU_PASSWORD | /afs/cs/software/bin/reauth; python -u ~/diversity-for-predictive-success-of-meta-learning/div_src/diversity_src/experiment_mains/main_sl_with_ddp.py --manual_loads_name sl_hdb1_5cnn_adam_cl_filter_size --filter_size 4 > $OUT_FILE 2> $ERR_FILE' > nohup.out$SLURM_JOBID &