1. ホーム
  2. shell

[解決済み] カンマで区切られたシェル変数をループする

2022-05-08 03:18:52

質問

Unixのシェル変数に次のようなものがあるとします。

variable=abc,def,ghij

すべての値を抽出したい ( abc , defghij を使用し、各値をプロシージャに渡します。

スクリプトでは、カンマで区切られた値を任意の数だけ $variable .

解決方法は?

以下のスクリプトを使用すると、カンマ区切りだけであれば、フィールドがいくつあっても、変数を動的にトラバースすることができます。

variable=abc,def,ghij
for i in $(echo $variable | sed "s/,/ /g")
do
    # call your procedure/other scripts here below
    echo "$i"
done

の代わりに echo "$i" の呼び出しは、上記の dodone を実行すると、プロシージャを呼び出すことができます。 proc "$i" .


更新情報 : 上記のスニペットは、変数の値にスペースが含まれていない場合に動作します。もしそのような要件があるのなら、以下のような解決策を使ってください。 IFS を作成し、変数をパースします。


お役に立てれば幸いです。