9

ファイルを読み込んだ配列 (lines_ary[@]) を検索して、テキスト内のバージョン番号を見つけようとしています。ここでは Release を探しているので、それに続くバージョン番号を見つけることができます。

次のループを実行するときに、bash スクリプトで配列の次の要素にアクセスする方法はありますか?

for i in ${lines_ary[@]}; do
 if [ $i == "Release:" ] ; then
  echo ${i+1}
 fi
done

これは、「4.4」と言うのではなく、単に「1」を出力します。

4

3 に答える 3

9

配列自体の要素ではなく、配列のインデックスをループする必要があります。

for ((index=0; index <= ${#lines_ary[@]}; index++)); do
  if [ "${lines_ary[index]}" == "Release:" ]; then
    echo "${lines_ary[index+1]}"
  fi
done

for x in ${array[@]}要素に対するインデックスではなく、要素に対するループの使用。変数名の使用は、一般的にインデックスに使用されるiため、あまりお勧めできません。i

于 2013-06-11T20:56:10.687 に答える