簡単な確認メッセージを作成しています。コードは次のとおりです。
read -r -p "Are You Sure? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
echo "Yes"
;;
[nN][oO]|[nN])
echo "No"
;;
*)
echo "Invalid input..."
exit 1
;;
esac
ただし、有効かどうかに関する質問に答えると、エラーが表示されます。
Quang-Anhs-iPhone-3GS:~ root# /var/mobile/Testarea/confirm.sh
Are You Sure? [Y/n] y
/var/mobile/Testarea/confirm.sh: line 1: read: `input
': not a valid identifier
/var/mobile/Testarea/confirm.sh: line 2:
: command not found
/var/mobile/Testarea/confirm.sh: line 3: syntax error near unexpected token `in
'
/var/mobile/Testarea/confirm.sh: line 3: `case $input in
'
それでは、私が何を間違っているのでしょうか?
答え1
なぜならiOSに何の問題があるのかわかりませんが、代替案を見つけました。この選択肢は選択メニューのように機能します。
function yes {
echo "Yes"
}
all_done=0
while (( !all_done )); do
options=("Yes" "Exit")
echo "Are you sure "
COLUMNS=12
select opt in "${options[@]}"; do
case $REPLY in
1) yes; break ;;
2) all_done=1; break ;;
*) echo "Invalid input..." ;;
esac
done
done
echo "Exiting"
答え2
これは思ったより簡単です。まず、bashを使用していることを確認してから、次のことを試してください。
#!/bin/bash
read -r -p "Are You Sure? [Y/n] " input
input=$(echo "$input" | tr "[:lower:]" "[:upper:]")
case $input in
Y*|S*|E*)
echo "Yes"
;;
N*|O*)
echo "No"
;;
*)
echo "Invalid input..."
exit 1
;;
esac
答え3
問題は、cydiaのモバイル端末に組み込まれた機能がないため、read
このスクリプトを起動できないことです。