Чтение ввода из командной строки

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

echo "Do you want to continue?(yes/no)" read -p $1 if [ "$1" == "yes" ] then sleep 5s echo "" echo " move ahead" else echo "" echo "Skipping The Step.." echo "" sleep 5s fi 

Я хочу выполнить скрипт следующим образом.

 sh script.sh yes sh script.sh no 

Добавлен -p к вышеупомянутому скрипту, и все, кажется, работают очень хорошо. Это моя настоящая проблема. У меня есть еще один скрипт test.sh, который вызывает script.sh. Так вот как я помещаю вход

 cat test.sh yes #!/bin/bash echo "execute the below script" sh script.sh $1 sh test.sh yes 

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

One Solution collect form web for “Чтение ввода из командной строки”

$1 , $2 … – позиционные аргументы командной строки и не могут быть назначены как read [-p] $1 или любым другим способом, кроме

 set -- firsr_arg second_arg … 

Для вашего случая это может быть проверка, если аргументы присутствуют, а затем проверить их

 while [ -z "$REPLY" ] ; do if [ -z "$1" ] ; then read -p "Do you want to continue?(yes/no) " else REPLY=$1 set -- fi case $REPLY in [Yy]es) sleep 5s echo -e "\n move ahead" ;; [Nn]o) echo -e "\nSkipping The Step..\n" sleep 5s ;; *) echo "Wrong answer. Print 'yes' or 'no'" unset REPLY ;; esac done 
  • Как скопировать структуру каталогов, но игнорировать символические ссылки?
  • Выполнять вторую команду в цепочке как другой пользователь
  • Почему встроенные времена не работают в трубопроводе?
  • Gzip большое количество символических файлов
  • Обработка текста и экспорт содержимого на лист Excel
  • Инкапсуляция команды Backtick
  • Записать исходный файл Python в файл немедленно
  • Как вычислить имя файла эскиза из оболочки?
  • Переменные среды установки OS X
  • Сценарий оболочки для перемещения файлов между двумя каталогами
  • посетить все каталоги под управлением версий
  • Как подсчитать вхождения каждого слова, принадлежащего файлу, во все количество файлов `n`, переданных в качестве аргументов?
  • Interesting Posts

    Как я могу получить доступ к столбцу строки из строки?

    xdg-mime не ведет себя

    Как сделать pgrep первым аргументом командной строки?

    Как переопределить конфигурацию logrotate с помощью другой конфигурации

    Восстановить правила с помощью iptables-restore, игнорируя ошибки

    Несогласованность перенаправления stderr между tcsh и другими оболочками

    error = $ (mkdir test 2> & 1) В чем смысл этого выражения?

    Разрешение отклонено scp'ing большой файл

    Разрешить пользователю просматривать домашний каталог других пользователей через sudo

    Использование USB-интерметателя через Android-телефон

    Как отлаживать, вызваны ли перезагрузки программным обеспечением или оборудованием?

    Как убедить tar (и т. Д.) Архивировать содержимое блочного устройства?

    MongoDB «сервис» на чистом Redhat не может быть запущен

    Не удается установить xrdp, используя apt-get на debian 8.5 (tinkeboard os) (Arm)

    Apache дает мне 403 на виртуальном хосте

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