使用 sh/bash 执行 .sh/.bash 程序与直接执行 .sh/.bash 程序的区别

使用 sh/bash 执行 .sh/.bash 程序与直接执行 .sh/.bash 程序的区别

如果我们有一个程序start.sh,我们可以使用sh start.sh执行它。但是我们可以使用chmod授予权限来执行它,然后在命令行中运行./start.sh。这两种执行bash/sh脚本的方式有什么区别?

答案1

它们都执行 shell 脚本,但是有一些区别:

sh将会使用 sh 解释器,即使在文件开头指明了不同的解释器,#!/bin/bash如果您希望始终使用相同的解释器执行脚本,这将很有用

因为./start.shshell 会尝试作为可执行文件执行,所以脚本需要一个 shebang,#!/bin/bash这样./start.sh就更加灵活了,因为你可以使用你想要的解释器

相关内容