もちろん、このようなこともできます。
read var; if [[ $var = 'y' ]]; then echo "Yes"; fi
しかし、最初のステップをスキップして次のことをさらに実行する方法はありますか(理想的にはサブシェルは必要ありません):
if [[ $(read var) = 'y' ]]; then echo "Yes"; fi
もちろん、上記は追加しないとうまくいきませんが、echo
次のよりクリーンでシンプルなものを探しています。
if [[ $(read var; echo "$var") = 'y' ]]; then echo "Yes"; fi
これが可能であれば理想的です。
if [[ read = 'y' ]]; then echo "Yes"; fi
ベストアンサー1
必要なものを達成するために機能を使用する方法:
user_input () {
read var
echo $var
}
if [ "$(user_input)" = 'y' ]; then echo "Yes"; fi
一番上には、値を読み込んでから再エコーするuser_inputという関数を定義しました。その後、if文は値を取得して「y」であることを確認できます。$(user_input)
ユーザーがスペースを入力できないように引用符で囲み、スクリプトにエラーが発生しないようにしました。