启动脚本:命令“exec”和“bash”之间的区别?

启动脚本:命令“exec”和“bash”之间的区别?

bw 有什么区别:

  1. exec script.sh
  2. bash script.sh

假设 script.sh 已设置所有适当的读取/执行权限?

答案1

exec script.sh 取代当前 shell 的 shebang 行中定义的 shell script.sh,并使用该解释器运行文件的其余部分。这可以是从/bin/sh到 的任何内容/usr/bin/python,无论文件扩展名是什么。为此,script.sh必须是可执行的。这样做的副作用之一是,script.sh完成后 shell 也会退出。如果是交互式终端,终端也会退出。

bash script.sh使用新的bashshell 来解释script.sh,独立于 shebang 行。也就是说,如果存在 shebang 行,它将被忽略。script.sh不必可执行即可以这种方式运行。

相关内容