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>
これは正しい表現ではありません。
代わりに、リストを連想配列に変換できます。この回答で提供された例に従ってください。