リスト内のアイテムのインデックスを探します。

リスト内のアイテムのインデックスを探します。

この簡単な方法を使用して、リスト項目のインデックスを見つけようとします。

#!/bin/sh

partList="500 1000 2000 4000"
a=( $partList )
echo ${a["500"]}

試みるSyntax error: "(" unexpectedと同じエラーが発生しますecho ${a[500]}0ご使用の場合は返品してください500

私は次のようにリストをいつ繰り返すべきかを知るための迅速で汚い方法を探しています。

 for j in $partList; do
   if [ $j is the first entry in the list $partList ]; then
     stuff happens..
   done
 done

リストの最初の要素を使用しますか?その場合は、いくつかのロジックを使用します。

リストのインデックスを利用すれば簡単にできると思います。しかし、難しいようです#!/bin/sh

どんな提案がありますか?

答え1

検索プロセスを逆にしました。 array[index] は何かを返します。 array [array_element]はインデックスを提供しません。ルックアップテーブルが必要です(ハッシュマップが優れています)。

しかし、あなたがやっていることは、実際にはインデックスを繰り返すだけです!j in $partListループを繰り返しj in $(seq ${#partlist[@]})、インデックスを使用して要素を取得する代わりに。

最後に…必要ありません。実際に最初の要素だけを使用するのはなぜですか?

j=${partList[0]}
stuff happens..

関連情報