Você pode executar comandos no Script se esses comandos estiverem disponíveis no sistema.
No seu caso, o comando verify
não está disponível. Daí o erro.
Instale o pacote relevante OU escreva um programa / script / função pelo nome verify
Explicação do código: O código abaixo é um script simples escrito por mim para enviar um email de alerta do status da instalação. Ele será enviado após a conclusão de uma instalação de software do Linux. Nesse código, se o usuário aceitar a notificação por email, ele será solicitado a inserir seu ID de email. Em seguida, o e-mail será enviado para ele após a conclusão da instalação.
#!/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 ""
Problema: Meu problema é quando tento executar o código Estou recebendo o seguinte erro.
verify: command not found
Como sou muito novo no Linux, não consigo corrigir esse problema. Você pode, por favor, me ajudar a entender exatamente o que eu senti falta?
Você pode executar comandos no Script se esses comandos estiverem disponíveis no sistema.
No seu caso, o comando verify
não está disponível. Daí o erro.
Instale o pacote relevante OU escreva um programa / script / função pelo nome verify
Uma mensagem de erro no formulário x: command not found
ocorre se o comando x
não estiver instalado ou localizado em seu sistema. Mas há um problema real aqui é que você parece confundir a função de verify
com o read
shell embutido. Olhando para a sua página man , você deve ver que ela não faz o que você espera: é uma ferramenta para verificar certificados.
Use read -p
como você já fez na outra parte do script para solicitar uma resposta. Você poderia encurtar seu script colocando a parte de envio de e-mail dentro do bloco 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
# ...
Os VerAns, Y / N nunca são lidos, o código abaixo ajuda nisso. Verifique se a função não está em sua biblioteca, você deve escrever de sua autoria como SHW disse,
#!/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 ""
Isso funciona perfeitamente ...
Tags sendmail linux shell-script