Caseステートメントでキャリッジリターン/ラインフィードをキャプチャする方法

Caseステートメントでキャリッジリターン/ラインフィードをキャプチャする方法

成功せず、次を試しましたが、ドキュメントが見つかりませんでした。

read Option
case $Option in
    [1] ) echo "1" ;;
    [2] ) echo "2" ;;
    [$'\n'] ) echo "LF" ;;
    [0] ) exit ;;
    * ) echo "Invalid input" ;;
esac

ただし、次の方法が機能します。

$ x="                                         
> "
$ if [ "$x" = $'\n' ]; then echo "newline"; fi
newline

ベストアンサー1

改行なしで入力の1行だけを読み取るので、空の文字列readだけを確認したいと思います。

read Option
case $Option in
    1 ) echo "1" ;;
    2 ) echo "2" ;;
    "" ) echo "LF" ;;
    0 ) exit ;;
    * ) echo "Invalid input" ;;
esac

[1]1他の単一文字クラスと同様に)同じ文字列をパターンと一致させます。

おすすめ記事