1

ディレクトリ内のすべてのファイルのファイル名と別の整数でハッシュ テーブルを作成しようとしています。「ファイル名」:「番号」のように。コードは bash 4.x である必要があります。これは私が書いたコードです:

#!/bin/bash
DIR=`ls`
declare -A ARRAY
ZERO=0
for FILES in $DIR
do
    echo "We have $FILES"
    ARRAY+=(["$FILES"]="$ZERO")
done
echo "Done with filling up array!"
for file in "${ARRAY[@]}" ; do
    KEY="${file%%:*}"
    VALUE="${file##*:}"
    printf "%s has number %s.\n" "$KEY" "$VALUE"
done
echo "We are done here!"
echo "Check: "
printf "%s has the number %s\n" "${ARRAY[1]%%:*}" "${ARRAY[1]##*:}"

そして、次の出力が得られます。

[Anil@computer68 test]$ bash kenzo.sh 
bash kenzo.sh 
We have dafuq.sh
We have hello.cpp
We have kenzo.sh
Done with filling up array!
0 has number 0.
0 has number 0.
0 has number 0.
We are done here!
Check: 
 has the number 

どうすれば修正できますか?ハッシュ テーブルのどの要素にも、ファイル名と番号の値はありません。

4

1 に答える 1