如果我们有一个程序start.sh,我们可以使用sh start.sh执行它。但是我们可以使用chmod授予权限来执行它,然后在命令行中运行./start.sh。这两种执行bash/sh脚本的方式有什么区别?
答案1
它们都执行 shell 脚本,但是有一些区别:
sh
将会使用 sh 解释器,即使在文件开头指明了不同的解释器,#!/bin/bash
如果您希望始终使用相同的解释器执行脚本,这将很有用
因为./start.sh
shell 会尝试作为可执行文件执行,所以脚本需要一个 shebang,#!/bin/bash
这样./start.sh
就更加灵活了,因为你可以使用你想要的解释器