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不必可执行即可以这种方式运行。