Как поймать возврат каретки / строку в заявлении 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 

  • Используя инструмент командной строки cURL на Mac, как можно получить данные запаса, которые возвращаются * без * запятых?
  • Как обеспечить, чтобы скрипт bash выполнялся через сеть, не будучи в каталоге / cgi-bin?
  • С помощью sed я хочу заменить первый блок текста, который соответствует
  • Отображать заголовки с помощью vimdiff или vim -d
  • dirname и basename против расширения параметров
  • Если проблема со статусом
  • Дата «1 месяц назад» не работает в AIX
  • Как мне ожидать «echo -e»? \ С»?
  • 2 Solutions collect form web for “Как поймать возврат каретки / строку в заявлении case”

    Поскольку read только считывает одну строку ввода, sans newline, вы просто хотите проверить пустую строку:

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

    [1] и 1 (и аналогично для других односимвольных классов) соответствуют тем же строкам, что и шаблоны.

    read разделит его. Сам пример дела работает.

     #read Option Option=' ' case "$Option" in [1] ) echo "1" ;; [2] ) echo "2" ;; [$'\n'] ) echo "LF" ;; [0] ) exit ;; * ) echo "Invalid input" ;; esac #Outputs: LF 
    Linux и Unix - лучшая ОС в мире.