dash -c
的行为与bash -c
不同:
docker run -it ubuntu /bin/dash -c ps
PID TTY TIME CMD
1 ? 00:00:00 sh
7 ? 00:00:00 ps
docker run -it ubuntu /bin/bash -c ps
PID TTY TIME CMD
1 ? 00:00:00 ps
这种差异有解释吗?
答案 0 :(得分:5)
bash有一个优化,其中脚本中的最后一个命令隐式地使用exec
执行。 dash最近也获得了此优化,但尚未使用您正在使用的版本。您会在bash -c 'exec ps'
和dash -c 'exec ps'
看到相同的行为。