创建shell脚本时的执行权限

kau*_*wal 0 permissions bash scripts

我可以在第一次创建 shell 脚本时为其提供执行权限吗?

我想要一行代码,它允许我向文件授予执行权限,以便我可以在文件本身中添加该行。假设我事先知道文件名。

Byt*_*der 5

不确定我是否理解正确,但是如果您想要一个设置自己执行权限的脚本文件,则必须包含以下命令:

chmod +x -- "$0"
Run Code Online (Sandbox Code Playgroud)

shell 变量$0始终保存正在运行的脚本的名称。注意双引号和双破折号以防止对特殊文件名的误解。

但是,要首次启动该脚本,您需要使用脚本文件作为参数调用解释器,如下所示:

bash example.sh
Run Code Online (Sandbox Code Playgroud)

  • 当它第一次运行并且脚本尚未标记为可执行时,您需要编写`bash example.sh`。在那之后(或在运行 `chmod +x example.sh` 之后)脚本是可执行的,你可以只使用 `./example.sh` 或 `path/to/example.sh` 来运行它,而无需使用 `bash`。不过,这也需要正确的shebang(文件的第一行是`#!/bin/bash`)。 (2认同)