以下に小さなスクリプトがありますが、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; }
次の文が何を意味するのか理解していません。
field_number[@]
{#field_number[*]}
答え1
field_number
は配列であり、
${!field_number[@]}
配列のインデックスリストを提供し
${#field_number[*]}
、 は配列の要素数です。
配列の bash チュートリアルを参照することをお勧めします。彼らと一緒に働くのは少し面倒です。
答え2
- field_number配列のすべての要素を参照してください。
${#field_number[*]}
field_number要素の数。
このチュートリアルを読んでください:http://www.thegeekstuff.com/2010/06/bash-array-tutorial/