我正在 Mac 上学习 UNIX 命令。我已经配置了 Bash(我知道 zsh 更好,但我使用 Bash 是为了遵循教程,所以请不要建议切换到 zsh)。我已经写了一个脚本/Users/dw/bin/hello.txt。我认为在执行脚本之前需要更改权限,但实际上我能够运行bash hello.txt并获得预期的输出,而无需更改该文件的权限。该文件的权限是rw-r--r--. 知道为什么我能够在hello.txt不执行chmod和添加a+x等的情况下执行脚本吗?
您没有执行该文件。您正在执行bash并传递文件。然后 Bash 将读取该文件并逐行运行它。
要执行文件本身,您必须输入./hello.txt(如果文件没有设置位,这将失败x)。
以这种方式执行它也将尊重 shebang 行(如果指定)。运行时bash hello.txt将始终使用 bash 运行它,即使 shebang 指定了不同的解释器(例如sh或python)。