后台执行命令
在命令的结尾使用 & 符号,可以将这个命令放入后台执行。
命令放入后台后,会立即回到 Shell 进程,Shell 进程会立即执行下一条命令 (如果有) 或退出。
使用 $! 可以获取最近一个后台进程的 PID。
sleep 20 &
echo $!
使用 wait 命令可以等待后台进程 (当前 Shell 进程的子进程) 完成:
wait [n1 n2 n3 ...]
不给定任何参数时,会等待所有子进程 (即所有后台进程) 完成。
sleep 5 &
wait
echo haha
多命令组合
Shell 中有多种组合多个命令的方式。
1.cmd1 退出后,执行 cmd2
cmd1;cmd2
2.cmd1 正确退出 (退出状态码为 0) 后,执行 cmd2
cmd1 && cmd2
3.cmd1 不正确退出后,执行 cmd2
cmd1 || cmd2
- 逻辑结合:&& 和 || 可以随意结合
- 将多个命令分组:小括号或大括号可以组合多个命令