Bash - []演算子の非数値引数(配列)

Bash - []演算子の非数値引数(配列)

以下に小さなスクリプトがありますが、forループとifステートメントをよく理解していません。まず、スクリプトを見てみましょう。

listFieldNumbers ()
 { for ii in ${!field_number[@]}; 
do 
if [ $ii -lt $(( ${#field_number[*]}-1 )) ];
 then echo -n "$(( ${field_number[$ii]} + 1 )),"; 
else echo "$(( ${field_number[$ii]} + 1))"; 
fi; 
done; }

次の文が何を意味するのか理解していません。

  1. field_number[@]
  2. {#field_number[*]}

答え1

field_numberは配列であり、
${!field_number[@]}配列のインデックスリストを提供し
${#field_number[*]}、 は配列の要素数です。

配列の bash チュートリアルを参照することをお勧めします。彼らと一緒に働くのは少し面倒です。

答え2

  1. field_number配列のすべての要素を参照してください。
  2. ${#field_number[*]}field_number要素の数。

このチュートリアルを読んでください:http://www.thegeekstuff.com/2010/06/bash-array-tutorial/

関連情報