Bashスクリプトで引数を渡すにはどうすればよいですか?

How Do I Pass Argument Bash Script



Linux Mint 20ユーザーのほとんどは、bashスクリプトで引数を渡すときにスタックしていることに気付きます。実行時に任意のbashスクリプトに引数を渡すことができます。 bashスクリプトで引数を渡すための簡単で便利な方法がいくつかあります。この記事ガイドでは、bashスクリプトで引数を渡して使用する非常に簡単な方法について説明します。

デフォルト変数を使用した引数の受け渡し:

touchコマンドを使用して、file.shなどの任意の名前で新しいファイルを作成します。







$接するファイル名



この新しく作成されたファイルを開き、bashスクリプトを追加します。いくつかのデフォルト変数を追加しました。その結果、1ドル、2ドル、3ドルになります。端末を介して渡される引数はすべて、指定された変数に格納されます。







./コマンドに続けていくつかの引数を使用して、このファイルを実行する必要があります。写真でわかるように、引数を渡すと、エラーが発生します。アクセスが拒否されました。これは、このファイルに実行権限がないためです。

$/ファイル名argument1argument2引数

したがって、このファイルに実行権限を付与するには、sudochmodコマンドを使用して付与します。



$sudo chmod+ xファイル名

ここで、上記と同じコマンドを使用してファイルを再度実行します。今回はさまざまな議論をしました。新しく渡された引数がデフォルト変数に格納されていることがわかります。

引数としてシェルスクリプト名を渡す:

ここで、デフォルト変数を少し変更して、同じ古いファイルfile.shを使用します。図のように、スクリプトに変数$ 0を追加する必要があります。

同じ./シェルスクリプトコマンドを実行すると、シェルスクリプトの名前(例: ./filenameは、引数として$ 0変数に格納されます。

引数を配列として変数に渡す:

同じファイルfile.shから始めて、古いスクリプトにいくつかの行を追加する必要があります。 arrayという名前の変数を宣言します。ユーザーが入力した引数を配列として格納するデフォルトの変数[emailprotected]を追加します。これらの引数は、変数配列に解析されます。最後の行には、インデックス番号でソートされた変数配列のすべての引数が表示されます。

./シェルスクリプトを実行します。 [email protected]に配列として格納されている引数または値が変数配列に解析されて表示されますが、2番目のechoステートメントのシェルスクリプト名は表示されないことがわかります。次の出力が得られます。

$/ファイル名argument1argument2引数

同じスクリプトで同じファイルを使用します。写真で明らかなように、最後の行から$ {array [3]}を削除するだけです。

./コマンドを実行すると、上記の例と同様の出力が変更なしで表示されます。

bashスクリプトの最後の行を1つの単語に置き換えることでも、同じ結果を得ることができます。 echoステートメントに[emailprotected]を追加するだけで、この変数配列に存在する引数が表示されます。

したがって、。/コマンドを再度実行すると、同じ結果が得られます。

渡された引数の総数を確認します。

逆に、ユーザーが渡した引数の総数を知りたい場合は、それを行うこともできます。この目的のために、echoで[emailprotected]を$#に置き換える必要があります。

再び./コマンドを実行すると、スクリプトに渡された引数の全体像が表示されます。この場合、3つの引数が値として渡されます。

引数の行ごとの出力を作成します。

ホームディレクトリに新しいファイルtest.shを作成します。図のようにbashスクリプトを追加します。

次に、同じ古いコマンドを異なる引数で実行します。まず、次のエラーが表示されます:アクセスが拒否されました。

このファイルにsudo権限を付与するには、chmodコマンドを実行する必要があります。その後、。/ shellscriptコマンドを再度実行します。そして、引数の行ごとにソートされた出力を取得します。

引数インデックス番号を使用して変数を制限します。

インデックス番号を使用して変数を制限したい場合は、非常に簡単に行うことができます。 $記号の後に中括弧を追加し、他の引数の前に表示する引数インデックス番号を追加します。

ユーザーによって提供された引数がlimit変数で提供されたインデックス番号よりも小さい場合、空の引数値を取得します。例として、4つの引数を指定しましたが、表示する05の引数値を指定しました。この状況では、5番目の引数が渡されていないため、変数は空で表示されます。

ただし、コマンドで同じ数以上の引数を渡すと、次のように結果に表示される値が得られます。

特定の値の引数の確認:

ホームディレクトリにCheck.shという名前の新しいファイルを作成します。次の画像に示すのと同じbashスクリプトを追加します。このスクリプトには、ユーザーから渡された引数値を格納するための変数varがあります。次に、引数の値が一致するかどうかをチェックするifステートメントがあります。引数の値が括弧内の値と一致する場合、最初のエコーステートメントが実行されます。値が一致しない場合、2番目のechoステートメントが実行されます。

シェルスクリプトコマンドを実行すると、エラーが発生します。 chmodコマンドを使用することで、このエラーを修正できます。

その後、引数値を指定して特定のファイルのシェルスクリプトを実行します。この例では、Aqsaを引数値として指定しました。これは、括弧内に表示されている値と同じです。したがって、bashスクリプトは、示されているように最初のechoステートメントを実行します。

一方、シェルスクリプトで異なる引数値を指定すると、他のエコーステートメントが表示されます。ここでは、ifステートメントで提供される値とは異なる引数値としてRimshaを追加しました。したがって、bashスクリプトは2番目のechoステートメントを実行します。

結論:

このガイドが、引数をデフォルト変数に渡す方法、引数値を配列として変数に渡す方法、渡される引数の総数を取得する方法、引数を1行ずつ出力する方法、引数を制限する方法を十分に理解するのに役立つことを願っています。インデックス番号を使用して出力し、特定の値の引数などをチェックします。