1
globから派生したファイル名をキーとして連想配列をBashに作成したいとします。ここで私はやっているものです:glob出力を持つBash連想配列の作成
declare -A file_hash
for file in *; do
file_hash+=([$file]=1)
done
私は同じことをやって、より簡単な方法がある場合は、多少、我々はこのよう通常の配列を初期化する方法のように、見て好奇心:
file_array=(*)
私はSOにanotherポストから得たアイデアの一つは、次のとおりです。
file_array=(*)
declare -A file_hash=($(echo ${file_array[@]} | sed 's/[^ ]*/[&]=&/g'))
ことが最善の方法ですか?
エコーメソッドからインスピレーションを得て、これはいくつかのテストでは問題なく動作しますが、evalを必要とします: 'declare -A filehash; eval $(printf 'ファイルハッシュ+ =(["%s"] = 1);' * .txt) ' –