概要
例えば awk で複数の結果を受け取ってそれをループして各要素を変数に格納する場合などに使えます
環境
- Ubuntu 18.04
- bash
サンプルコード
docker service ls | awk 'OFS="," {print $2,$4}' | while IFS=, read -r srv count
do
echo ${srv}
echo ${count}
done
解説
docker service ls の結果からサービス名とサービスの稼働数を取得してそれをループでそれぞれ表示しています
awk の結果は OFS=","
で csv 形式にします
こうすることで while read 時に IFS=,
を設定し awk の csv 結果を分割してすることができます
分割した結果は srv, count という変数にそれぞれ格納されます
for ループでも同じようなことができますがシェルスクリプトで結果をループしたい場合は while read を使う方法をおすすめします
0 件のコメント:
コメントを投稿