GNU/Linux >> Linux の 問題 >  >> Linux

bash スクリプトに少なくとも 2 つの引数が指定されていることを確認します

$# を使用 特殊変数。その値は引数の数です。したがって、以下のみを含むスクリプトがある場合:

echo $#

次のように実行します:

thatscript foo bar baz quux

4 と表示されます。

あなたの場合、次のようなことをしたいかもしれません:

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

引数に「少なくとも 2 つのもの」が含まれている必要があるという質問の要件に従って、以下を確認する方が正確であると思います:

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

算術展開 (( の使用 )) これが exit 1 にヒットするのを防ぎます 2 以外の任意の値。

if [ $# -ne 2 ]; を使用する場合 2 以外の任意の数の引数に対して条件をトリガーします。

編集:受け入れられた回答が更新され、これと同等の (そしてより移植性の高い?) 例が含まれているようです。


Linux
  1. LAN でどのコンピュータがオンになっているかを通知する Linux bash スクリプトを作成するにはどうすればよいですか?

  2. Linuxでbashスクリプトを使用してインターネットアクセスをチェックするには?

  3. ファイルがbashスクリプトの特定のディレクトリに存在するかどうかを確認するには?

  1. jenkins パイプラインで bash コマンドを実行する

  2. 入力が Bash のパイプに送信される方法を理解する

  3. パブリック HTTPS サイトが稼働しているかどうかを確認する Bash スクリプト

  1. スクリプトを実行するために、パターンに一致するファイルがあるかどうかをテストしますか?

  2. Linux bashスクリプトで特定のユーザーが5分以上実行しているすべてのプロセスを強制終了します

  3. SSH を使用してサーバーにログインすると、2 つの MOTD が表示されます