unix 为什么我可以在没有myscript +x权限的情况下运行“bash myscript”?

v440hwme  于 2023-11-18  发布在  Unix
关注(0)|答案(1)|浏览(127)

我正在Mac上学习UNIX命令。我已经配置了Bash(我知道zsh更好,但我做了Bash遵循教程,所以请不要建议切换到zsh).我写了一个脚本在/Users/dw/bin/hello.txt .我想我需要改变权限之前,我可以执行脚本,但我实际上能够运行bash hello.txt并获得预期的输出,而无需更改该文件的权限。该文件的权限是rw-r--r--。知道为什么我能够在hello.txt中执行脚本吗不做chmod和添加a+x等等?

xriantvc

xriantvc1#

你不是在执行文件。你是在执行bash并传递文件。然后Bash将读取文件并逐行运行它。
要执行文件本身,必须输入./hello.txt(如果文件没有设置x位,则此操作将失败)。
以这种方式执行它也会遵守shebang行(如果指定的话)。运行bash hello.txt将始终使用bash运行它,即使shebang指定了不同的解释器(例如shpython)。

相关问题