【问题标题】:"bash -c" vs. "dash -c"“bash -c”与“破折号 -c”
【发布时间】:2017-01-18 22:58:42
【问题描述】:

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

对这种差异有解释吗?

【问题讨论】:

  • 我想说 bash 不需要运行 shell 来运行 ps。

标签: bash ubuntu dash-shell


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2011-11-05
    • 2022-01-10
    • 2012-05-10
    • 2011-08-30
    • 1970-01-01
    相关资源
    最近更新 更多