bashを使って大学で初めてスクリプトを書く方法を学んでいますが、入れ子になった文/ループ/関数に問題があります。
変数の値がtrueの場合、そのifステートメントで中断/返され、関数の一部である埋め込みwhileループでも中断され、終了するifステートメントを作成しようとします。 if文の変数はtrueです。)
私はreturn N、break N、そして終了を試みました。 (これはスクリプトが終了したことを知っています。)以下は、スクリプトを設定しようとした方法の例です。
#!/bin/bash
function1()
{
while read -p "Enter a value: " input
do
if [ $input="X" ]
then
return 2
fi
# Rest of while statement
done
# End of while loop.
}
# End of function.
function1
# Call function1.
# Rest of script
これがどのように機能するかを理解できる人はいますか? (この質問の衝撃的な形式についてお詫び申し上げます。私はこのサイトに初めてアクセスし、実際に座ってそれがどのように機能するかを調べるのに時間がかかりませんでした。申し訳ありません。)
答え1
これがあなたが望むものです:
#!/bin/bash
function1() {
while read -p "Enter a value: " input; do
if [ $input = "X" ]; then
return 2
fi
# Rest of while statement
done
# End of while loop.
}
# End of function.
function1 # Call function1. # Rest of script
「=」の前後にスペースを追加し、条件として単純な[]を使用するのと同じくらい簡単です。
答え2
if [ $input="X" ]
しなければならない:
if [[ $input="X" ]]