引用符付きの項目を持つForループ

引用符付きの項目を持つForループ

引用符付きヘッダーのリストを繰り返す for ループ:

for h in "header" "header 2"; do
    echo $h
done

返品

header
header 2

変数に代入するなど、ヘッダを整理するために別の場所でヘッダを参照したいと思います。

headers='"header" "header 2"'
for h in $headers; do
    echo $h
done

しかし、これは戻ります

"header"
"header
2"

そうする必要があります。

この問題を解決する方法はありますか?似ているこの投稿空白のあるファイルのリストが含まれていますが、ファイルには対応していません。アイテムが多いので一行にしておきたいです。

ベストアンサー1

別の方法は、フィールド区切り変数を変更することです。たとえば、次のようになります。

headers="header,header 2"
IFS=,
for h in $headers; do
        echo $h
done

メモ:デフォルトのIFS値を必要とする別のループがある場合は、最初にIFS値を一時変数に保存できます。

詳細を確認しman bashて検索してみてくださいIFS

おすすめ記事