목록에서 항목의 색인을 찾으십시오.

목록에서 항목의 색인을 찾으십시오.

이 간단한 방법을 사용하여 목록 항목의 색인을 찾으려고 합니다.

#!/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..

관련 정보