ループ変数置換後のシェルグローブ拡張

ループ変数置換後のシェルグローブ拡張

ループ変数の置換後にグローバルに拡張されるように、次の例をどのように変更できますか?

for i in a b c
    do echo $i/*.txt
done

更新:これは一般的に機能しますが、set -f私が見ているスクリプトでは完了しました。

ベストアンサー1

コードを書く場合は、bash「set -f」を使用してワイルドカードをオフにし、「set +f」を使用して設定すると、目的の結果が得られます。

#!/bin/bash

for i in a b c
do
    set -f
    Z=$i/*.txt
    echo $Z
    set +f
    echo
    echo "Does it expand?"
    echo $Z
done

おすすめ記事