Чтение из tty в трубчатой ​​оболочке

У меня есть сценарий, который запускается следующим образом:

curl https://example.com/install.sh | zsh

Сценарий должен считываться с использования ввода:

read "human_name?Your human name ?"</dev/tty 

Проблема заключается в том, что пользователь видит вход и может ввести свой ответ, но ответ не сохраняется в человеческом имени.

Пример:

 cat <<EOM | zsh - read "human_name?Your human name ?"</dev/tty if [ -z "$human_name" ] ; then echo "tears" ; else echo "HI" $human_name; fi EOM 

Результаты в:

 Your human name ?Pat tears 

Любые указания?

  • При загрузке tmux по умолчанию при запуске zsh-терминала
  • zsh: удалить предсказанный текст
  • Альтернативный псевдоним суффикса Zsh в bash
  • Удалять удаленные файлы, соответствующие локальным файлам, или удалять файлы по мере их загрузки
  • ZSH: история поиска по клавишам вверх и вниз?
  • Иногда мой zsh испортил конец строк
  • Расширение тильды в zsh
  • Диапазоны массивов с пользовательским размером шага в оболочках Борна
  • One Solution collect form web for “Чтение из tty в трубчатой ​​оболочке”

    Вы всегда можете читать из терминала, перенаправляя его из /dev/tty , если программа не является фоновым заданием. Если это фоновая работа, она будет приостановлена ​​SIGTTIN, пока она не переключится на передний план.

    Проблема с вашим скриптом не читается с терминала, а то, что вы делаете с тем, что вы прочитали. Вы использовали здесь документ с интерполяцией, поэтому $human_name интерполируется при построении документа здесь, и в то же время он пуст. Вам нужно либо использовать документ здесь без интерполяции, либо указывать знаки доллара, чтобы оболочка, которую вы запускали с помощью zsh - просматривала и анализировала их.

     cat << 'EOM' |  zsh -
     прочитайте «человеческое имя? Ваше человеческое имя?» </ dev / tty   
     если [-z "$ human_name"];  затем эхо «слезы»;  else echo "HI" $ human_name;  фи
     МНВ
    
    Interesting Posts

    Перенаправить вывод фонового процесса на пейджер «меньше» после завершения работы не до терминала по умолчанию

    Как я могу исправить размеры значков диалогового окна Chrome / Chromium в HiDPI?

    Как изменить язык приложений по умолчанию на Debian?

    это проблема доступа или проблема с правами?

    Добавить .pdf в конец текста в текстовом файле – bash

    Fedora 16 с использованием системных загрузочных параметров systemd для изменения «runlevel»

    Fetchmail перемещает выбранную почту в папку резервного копирования

    Огромный отвод батареи во время приостановки до выключения – 12% / час – карта nvidia не отключается

    Улимит неограниченное поведение поведения стека

    Отключить классификаторы glob в zsh

    Поделитесь репутацией git по локальной сети

    условная пересылка dnsmasq на основе домена

    не может сохранить изображение докера: Ошибка ответа от демона: chtimes: недопустимый аргумент

    Как заставить программы python вести себя как соответствующие инструменты unix?

    Git больше не поддерживает автоматическую перезагрузку?

    Linux и Unix - лучшая ОС в мире.