
単純な端末コマンドを使用して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
答え1
スクリプトを実行できない場合は、適切なシェル(/bin/sh
または)を使用して呼び出す必要があります/bin/bash
。これはshebang行を無視し、呼び出しシェルを使用してスクリプトを実行します。
sudo /bin/sh ./script.sh
OPが意図したとおりにスクリプトを実行するには、スクリプトに実行権限を付与する必要があります。
chmod +x script.sh
sudo ./script.sh
この例では、スクリプトは shebang 行のシェルを使用して実行されます。