verify: команда не найдена исключение при попытке получить значение от пользователя

Код Объяснение: Нижеприведенный код – это простой скрипт, написанный мной для отправки оповещения о состоянии установки. Он будет отправлен после завершения установки программного обеспечения linux. В этом коде, если пользователь принимает уведомление по почте, ему будет предложено ввести свой идентификатор почты. После этого почта будет отправлена ​​ему после завершения установки.

#!/bin/bash ####################################### # Independent Variables and Properties Here ####################################### PL_EMAIL_ALERT="" ####################################### # User to get Email Alert ####################################### echo "This will help user to get an email of an installation status." verify -s "Do want to send Email" if [ "$VerAns" = "y" ] then read -e -p "Enter Email ID: " PL_EMAIL_ALERT fi ####################################### # Sending Email Alert ####################################### echo "Sending Mail" if [ ${#PL_EMAIL_ALERT} -ne 0 ] then mail -s "software INSTALLATION MAIL ALERT" $PL_EMAIL_ALERT <<< "message1" fi echo "" echo "Final step" echo "" 

Проблема: Моя проблема в том, что когда я пытаюсь выполнить код, я получаю следующую ошибку. verify: command not found Поскольку я очень новичок в Linux, я не могу исправить эту проблему. Не могли бы вы помочь мне понять, что именно я пропустил.

Вы можете выполнять команды в Script, если эти команды доступны в системе.

В вашем случае команда verify недоступна. Отсюда и ошибка.

Либо установите соответствующий пакет, либо напишите программу / скрипт / функцию по имени.

Сообщение об ошибке в форме x: command not found если команда x не установлена ​​или не найдена в вашей системе. Но здесь существует реальная проблема: вы, кажется, путаете функцию verify с помощью встроенной оболочки read . Если посмотреть на страницу своего руководства, вы увидите, что он не выполняет то, что вы ожидаете от него: это инструмент для проверки сертификатов.

Используйте read -p как вы уже сделали в другой части скрипта, чтобы запросить ответ. Вы можете сократить свой скрипт, поместив часть отправки электронной почты в блок if :

 # ... read -ep "Do you want to send Email? " alert if [[ $alert =~ [Yy] ]]; then read -ep "Enter Email ID: " addr if (( ${#addr} )); then echo "Sending Email" mail -s "software INSTALLATION MAIL ALERT" $addr <<< "message1" fi fi # ... 

VerAns, Y / N никогда не читается, код ниже помогает в этом. Функция проверки не находится в вашей библиотеке, вы должны написать свой собственный, как сказал SHW,

  #!/bin/bash ####################################### # Independent Variables and Properties Here ####################################### PL_EMAIL_ALERT="" VerAns="" ####################################### # User to get Email Alert ####################################### echo "This will help user to get an email of an installation status." #verify "Do want to send Email" read -e -p "Y/N" VerAns if [ "$VerAns" = "y" ] then read -e -p "Enter Email ID: " PL_EMAIL_ALERT fi ####################################### # Sending Email Alert ####################################### echo "Sending Mail" if [ ${#PL_EMAIL_ALERT} -ne 0 ] then mail -s "software INSTALLATION MAIL ALERT" $PL_EMAIL_ALERT <<< "message1" fi echo "" echo "Final step" echo "" 

Это прекрасно работает …