Pular para o conteúdo

Colocar o resultado de comando numa variável

Responder tópico
  • Denunciar
  • Indicar

1. Colocar o resultado de comando numa variável

Enviado em 30/03/2016 - 06:41h

Olá,

Começando no shell script :)
Para não variar, já tenho dúvidas! :)

Estou a tentar executar um comando e o resultado do mesmo deve ir para uma variável, neste exemplo OUTPUT. Ao executar o programa o resultado só deveria ser escrito quando chama-se a variável OUTPUT através da função echo (é uma função, certo?) Consigo fazer isso com o comando date, mas não consigo aplicar o mesmo ao comando "showmount...."

OUTPUT=$(showmount -e 192.138.4.832)
echo $OUTPUT
now=$(date)
echo $now


O resultado é:

clnt_create: RPC: Program not registered

Wed Mar 30 09:41:33 UTC 2016


Obrigado

Responder tópico

2. Re: Colocar o resultado de comando numa variável

Enviado em 30/03/2016 - 09:26h

Deve ser porque a saída deste comento está sendo de ERROR, nesse caso, se quiser capturar mesmo sendo saída de erro, faça:


OUTPUT=$(showmount -e $IP_ALVO 2>&1)


Ou pode checar se foi um erro, e continuar seu script .....:


if OUTPUT=$(showmount -e $IP_ALVO); then
echo "deu tudo certo, saida = $OUTPUT"
else
echo "erro"; exit 1
fi


3. Re: Colocar o resultado de comando numa variável

Enviado em 30/03/2016 - 09:45h

ede_linux escreveu:

Olá,

Começando no shell script :)
Para não variar, já tenho dúvidas! :)

Estou a tentar executar um comando e o resultado do mesmo deve ir para uma variável, neste exemplo OUTPUT. Ao executar o programa o resultado só deveria ser escrito quando chama-se a variável OUTPUT através da função echo (é uma função, certo?) Consigo fazer isso com o comando date, mas não consigo aplicar o mesmo ao comando "showmount...."


OUTPUT=$(showmount -e 192.138.4.832)
echo $OUTPUT
now=$(date)
echo $now


O resultado é:
clnt_create: RPC: Program not registered
Wed Mar 30 09:41:33 UTC 2016


Obrigado
-----------------------------------------------------------------------------------------------------------------------
Bom dia, ede_linux.
Através da função echo (é uma função, certo?)
No exemplo mostrado, echo é um comando.
Normalmente, utilizo FUNÇÃO, quando efetuo o mesmo comando repetidas vezes, exemplo:
DATA() {
echo -e "\nHoje é: $(date)"
}


As FUNÇÕES, devem ficar no inicio do script.
Em qquer lugar do script, você pode CHAMAR a FUNÇÃO pelo nome, neste caso DATA.

A MENSAGEM "clnt_create: RPC: Program not registered", é uma mensagem de erro do comando
showmount -e 192.138.4.832
Dei uma pesquisada, é algo relacionado com o NFS service.
Infelizmente não tenho mais informações sobre o comando showmount, nunca tive a necessidade de utilizar.
É isso. . .

-------------------------------------------------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
-------------------------------------------------------------------------------------------------------------------------------
Att.:
Marcelo






4. Re: Colocar o resultado de comando numa variável

Enviado em 30/03/2016 - 09:58h

Tente:

OUTPUT=`showmount -e 192.138.4.832`
echo $OUTPUT

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder