文字列のリストを介したBashループ

Bash Loop Through List Strings



文字列、配列、または要素のシーケンスのリストは、を使用して繰り返すことができます。 にとって bashでループします。このチュートリアルでは、さまざまなbashスクリプトの例を使用して、forループによってBashの文字列のリストを反復処理する方法を示します。初心者がbashプログラミングである場合は、チュートリアルを読むことができます。 BASHForループの例 このチュートリアルを開始する前に。

‘という名前のbashファイルを作成します for_list1.sh ’を入力し、次のスクリプトを追加します。スペースを含む文字列値がforループ内で使用されます。デフォルトでは、文字列値はスペースで区切られます。 forループは文字列を単語に分割し、改行を追加して各単語を出力します。







#!/ bin / bash
#forループを使用してスペースを含む文字列を読み取る
にとって価値私はプログラミングが好きです
NS
捨てた $ value
終わり

出力:



$bashfor_list1.sh



例-2:forループを使用して文字列変数を反復する

‘という名前のbashファイルを作成します for_list2.sh ’を入力し、次のスクリプトを追加します。変数にテキストを割り当て、 StringVal そして、forループを使用してこの変数の値を読み取ります。この例も前の例と同様に機能し、変数の値をスペースに基づいて単語に分割します。





#!/ bin / bash
#値を使用して文字列変数を定義する
StringVal=「linuxhintへようこそ」

#forループを使用して文字列変数を反復します
にとって時間 $ StringVal;NS
捨てた $時間
終わり

出力:

$bashfor_list2.sh



例-3:文字列値の配列を繰り返します

‘という名前のbashファイルを作成します for_list3.sh ’を入力し、次のスクリプトを追加します。このスクリプトでは、文字列値の配列が型で宣言されています。スペースを含む配列内の2つの値は次のとおりです。 Linux MintRed Hat Linux 。このスクリプトは、これらの値を複数の単語に分割し、個別の値として出力することによって出力を生成します。しかし、これは適切な出力ではありません。このタイプの問題の解決策を次の例に示します。

#!/ bin / bash

#タイプを使用して文字列の配列を宣言します
宣言する -に StringArray=((「LinuxMint」 「Fedora」 「RedHatLinux」 「Ubuntu」 「Debian」 )。

#forループを使用して文字列配列を反復します
にとって時間 $ {StringArray [@]};NS
捨てた $時間
終わり

出力:

$bashfor_list3.sh

例-4:複数の単語の文字列値を単一の値として出力する

‘という名前のbashファイルを作成します for_list4.sh ’を入力し、次のスクリプトを追加します。この例では、配列変数のすべての要素、 StringArray 2つの単語の値が含まれています。分割せずに各値を出力し、前の例の問題を解決するには、配列変数をで囲む必要があります。 二重引用符 forループ内。

#!/ bin / bash

#タイプを使用して文字列配列を宣言します
宣言する -に StringArray=((「WindowsXP」 'ウィンドウズ10' 「WindowsME」 「Windows8.1」
「WindowsServer2016」 )。

#スペースを使用して配列値を読み取ります
にとって時間 '$ {StringArray [@]}';NS
捨てた $時間
終わり

出力:

$bashfor_list4.sh

例-5:「*」を使用して配列の文字列値を反復する

‘という名前のbashファイルを作成します for_list5.sh ’と次のコード。ここで、「*」記号は、配列のすべての文字列値を読み取るために使用されます。最初のforループは、配列値を複数行で表示するために使用され、2番目のforループは、配列値を1行で表示するために使用されます。

#!/ bin / bash

#文字列配列を宣言する
LanguageArray=((「PHP」 「Java」 'NS #' 「C ++」 「VB.Net」 「Python」 「Perl」)。

#配列値を行に出力します
捨てた 「すべての要素を改行で印刷する」
にとってval1 $ {LanguageArray [*]};NS
捨てた $ val1
終わり

捨てた ''

#配列値を1行で出力
捨てた 「すべての要素を1行で印刷する」
にとってval2 '$ {LanguageArray [*]}';NS
捨てた $ val2
終わり
捨てた ''

出力:

$bashfor_list5.sh

例-6:コンマ区切りの文字列値を繰り返す

‘という名前の新しいbashファイルを作成します for_list6.sh ’ 次のコードで。ここ、 コンマ (、) 文字列値を分割するために使用されます。 IFS 変数は、フィールド区切り文字を設定するために使用されます。

#!/ bin / bash
DataList='HTML5、CCS3、BootStrap、JQuery'
Field_Separator=$ IFS

#文字列リストの内部フィールド区切り文字としてカンマを設定
IFS=、
にとって時間 $ DataList;
NS
捨てた $時間
終わり

IFS=$ Field_Separator

出力:

$bashfor_list6.sh

例-7:複数の文字列配列を一緒に読み取る

‘という名前のbashファイルを作成します for_list7.sh ’を入力し、次のスクリプトを追加します。この例では、2つの文字列配列が定義され、結合されて別の配列になります。外側のforループは結合された配列を読み取るために使用され、内側のforループは各内側の配列を読み取るために使用されます。

#! / bin / sh
str_array1=((「Magento2.2.4」 「WooCommerce」)。
str_array2=((「CodeIgnitor」 「Laravel」)。
混ぜる=((str_array1 str_array2)。
にとって管理 $ {combine [@]}
NS
eval '$ {'のvalの場合$ arrItem'[@]}'; do echo '$ val'; done '
終わり

出力:

$bashfor_list7.sh

例8:パターンを使用して文字列のリストを読み取る

名前の付いた新しいbashファイルを作成します for_list8.sh 次のコードで。ここ、 ‘/、/’ patternは、コンマに基づいて文字列値を分割するために使用されます。

#! / bin / sh

#文字列変数のリストを定義する
stringList= WordPress、Joomla、Magento

#区切り文字としてコンマを使用し、パターンとして適用します
にとって時間 $ {stringList //、/}
NS
捨てた $時間
終わり

出力:

$bashfor_list8.sh

このチュートリアルの例が、の使用法を理解するのに役立つことを願っています forループ 文字列のリストの反復については、このトピックに関するビデオについては、以下を参照してください。