bw 有什么区别:
exec script.sh
和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
使用新的bash
shell 来解释script.sh
,独立于 shebang 行。也就是说,如果存在 shebang 行,它将被忽略。script.sh
不必可执行即可以这种方式运行。