STATE
나는 변수()의 값이 목록()의 일부인지 확인하고 싶습니다 ALL_STATES
.
#!/usr/bin/bash
STATE='somevalue'
ALL_STATES=( lirum larum loeffelstiel )
echo state id is: "${STATE}"
echo all states are: "${ALL_STATES[@]}"
while ${STATE} not in ${ALL_STATES} ; do
echo ${STATE} needs a valid value
read -p "please provide the state ID: " STATE
done
echo state id is: "${STATE}"
나는 그것을 받아들인다 ./test_while_loop.sh: line 8: somevalue: command not found
. 그럼 내 상태에 뭔가 문제가 있는 것 같은데, 그게 뭔가요?
답변1
스크립트의 오류는 bash에서 while
키워드 뒤에 명령이 와야 하며 표현식을 해석하지 않는다는 것입니다. 또한 <value> in <array>
이는 올바른 표현이 아닙니다.
대신 목록을 연관 배열로 변환할 수 있습니다. 이 답변에 제공된 예를 따르십시오.