私のスクリプトで配列が宣言されています。
NAME[0]=Deepak
NAME[1]=Renuka
NAME[2]=Joe
NAME[3]=Alex
NAME[4]=Amir
echo "All Index: ${NAME[*]}"
echo "All Index: ${NAME[@]}"
上記の配列全体を印刷する方法は2つあります。誰かがこれらの方法の違いを書くことができますか?
答え1
echo "All Index: ${NAME[*]}"
同じecho "All Index: ${NAME[0]} ${NAME[1]} ${NAME[2]} ${NAME[3]} ${NAME[4]}"
echo "All Index: ${NAME[@]}"
等号変数echo "All Index: ${NAME[0]}" "${NAME[1]}" "${NAME[2]}" "${NAME[3]}" "${NAME[4]}"
の最初の文字IFS
は空白です(デフォルト)。
実行結果を見ることができますcopy.sh。
IFS
変数のデフォルト値はです$' \t\n'
。
${array[*]}
そして、$*
変数の最初の文字に分割された文字列を出力しますIFS
。分割する文字を変更することもできます。
NAME[0]=Deepak
NAME[1]=Renuka
NAME[2]=Joe
NAME[3]=Alex
NAME[4]=Amir
IFS=:
echo "All Index: ${NAME[*]}"
# Output: `All Index: Deepak:Renuka:Joe:Alex:Amir`
IFS=
echo "All Index: ${NAME[*]}"
# Output: `All Index: DeepakRenukaJoeAlexAmir`
IFS=$', \t\n'
echo "All Index: ${NAME[*]}"
# Output: `All Index: Deepak,Renuka,Joe,Alex,Amir`