Mar*_*nko 1 linux scripting sudo
我正在使用一个简单的终端命令,它向 iptables 添加规则并且它执行没有问题:
sudo iptables -A OUTPUT -p tcp -m string --string "facebook.com" --algo kmp -j REJECT
当我在 bash 脚本中运行该命令时,它返回 sudo: ./script.sh: command not found
该脚本如下所示:
#!/bin/bash
sudo iptables -A OUTPUT -p tcp -m string --string "facebook.com" --algo kmp -j REJECT
Run Code Online (Sandbox Code Playgroud)
如果脚本不可执行,则必须使用适当的 shell 调用它,例如/bin/sh
或/bin/bash
。这将忽略 shebang 行,脚本将与调用 shell 一起执行。
sudo /bin/sh ./script.sh
Run Code Online (Sandbox Code Playgroud)
要按照 OP 的要求运行脚本,您必须授予脚本执行权限。
chmod +x script.sh
sudo ./script.sh
Run Code Online (Sandbox Code Playgroud)
在这种情况下,脚本是用 shebang 行的 shell 执行的。
归档时间: |
|
查看次数: |
1108 次 |
最近记录: |