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

  • Как zgrep несколько строк
  • POSIX-совместимый / кросс-shell-способ для получения версии запущенной оболочки?
  • sudo kill: операция не разрешена через SSH
  • Как передать путь файла к функции вместо содержимого файла?
  • Получение истинного абсолютного пути сценария в / bin / sh
  • сценарий оболочки для извлечения символов
  • Получить путь к текущему отмеченному файлу
  • Как сравнить два числа
  • 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 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.