verify: exceção de comando não encontrado ao tentar obter o valor do usuário

1

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?

    
por Dinesh Kumar 19.12.2013 / 09:32

3 respostas

1

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

    
por 19.12.2013 / 09:57
0

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

# ...
    
por 19.12.2013 / 11:30
0

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 ...

    
por 19.12.2013 / 10:06