执行语句:nohup sh myshell.sh >output.txt 2>&1 &
语义:后台执行shell文件(不受连接断开等影响),shell的输出和错误信息在文件output.txt中。
分解:
蓝色:后台执行
绿色:执行shell
黄色:shell的输出文件重命名,没有的话默认文件是nohup.out
紫色:错误信息重定向在标准输出中。而不是2>output.txt,会导致文件output.txt被两次打开,stdout和stderr竞争覆盖。
其他
操作系统中有三个常用的流:
0:标准输入流 stdin,有缓冲区,如 0<in.txt,可简写为<in.txt
1:标准输出流 stdout,有缓冲区,如 1>out.txt,可简写为>out.txt
2:标准错误流 stderr,没有缓冲区
/dev/null文件:任何东西都可以定向到这里,但是却无法打开。若不关心stdout和stderr,可以定向到该文件中,如nohup sh myshell.sh >/dev/null 2>&1 &