シェルスクリプトで不明なコマンドをテストする方法は?

シェルスクリプトで不明なコマンドをテストする方法は?

シェルスクリプトを介して各コマンドに対して警告を受け取る方法があるかどうか疑問に思います。これは不明です。

構文チェックについて知っていますが、bash -nコマンドを使用できるかどうかはわかりません。

もちろん、コードを実行することはオプションではありません。

答え1

通常、スクリプトには次の内容が含まれる可能性があるため、これは不可能です。

read $command
"$command" -rf /

実際の生活では、コマンドはクリーンアップまたはリストから選択されますが、どのコマンドが可能であるかを事前に知ることはまだ不可能です。

答え2

明示的に次のことを試してください。

test_apps="command1 command2 command3"
for cmd in $test_apps; do
    type &>/dev/null $cmd && echo "$cmd installed" ||
        echo >&2 "$cmd not installed"
done

または、フルパスにコマンドを入力する場合:

grep -oP '^\s*/.*/\K.*' script.sh |
    xargs -I% which % 2>&1 |
    grep -oP '^\w+:\s+\Kno\s+\S+'

答え3

私は次のことをする傾向があります。

if ! which dos2unix > /dev/null; then

   echo "Error: dos2unix not installed!"
   exit 1
fi

関連情報