4

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

这种差异有解释吗?

4

1 回答 1

5

bash 有一个优化,其中脚本中的最后一个命令隐式地使用exec. dash 最近也获得了这种优化,但还没有在您使用的版本中。您将看到与bash -c 'exec ps'和相同的行为dash -c 'exec ps'

于 2016-09-11T09:12:09.633 回答