Armazenar saida de outro script dentro de variavel [RESOLVIDO]

1. Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Wanderlei Lopes Pires Magri
wanderleimagri

(usa CentOS)

Enviado em 06/09/2012 - 14:38h

É possivel armazenar a saida de execução de um outro script dentro de uma variável?

Tentei assim mas não funcionou:
var = `\root\outroscript.sh` 

só que ele mostra a saida na tela e não carrega na variavel.

e do comando adduser tbm acontece a mesma coisa
var = `/usr/sbin/adduser $1 -g 231 -s /bin/false` 



  


2. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/09/2012 - 14:44h

O certo é fazer assim:


/root/outroscript.sh > /tmp/conteudo.txt
VAR=`cat /tmp/conteudo.txt`



3. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Wanderlei Lopes Pires Magri
wanderleimagri

(usa CentOS)

Enviado em 06/09/2012 - 14:50h

renato_pacheco escreveu:

O certo é fazer assim:


/root/outroscript.sh > /tmp/conteudo.txt
VAR=`cat /tmp/conteudo.txt`


com o comando adduser nao funcionou, se funcionasse nem precisaria criar outro script, tem outra solução?


4. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/09/2012 - 14:56h

Explique melhor: o q vc quer colocar na variável $1?


5. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Wanderlei Lopes Pires Magri
wanderleimagri

(usa CentOS)

Enviado em 06/09/2012 - 15:03h

Estou passando por parametro para o sh
exemplo
./meuscript.sh minhaconta
ai dentro do shell ele executaria isso
var = `/usr/sbin/adduser $1 -g 231 -s /bin/false` 

e no lugar de $1 ele trocaria por minhaconta
so que ao inves de armazenar o retorno desse comando em var ele está exibindo na tela e var continua vazio


6. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/09/2012 - 15:07h

Mas esse q é o lance: q retorno? Esse comando não retorna nada, sacou?


7. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Wanderlei Lopes Pires Magri
wanderleimagri

(usa CentOS)

Enviado em 06/09/2012 - 15:09h

Mas e quando ele exibe "adduser: user minhaconta exists" isso é só para exibição? não tem nenhum retorno que informa se existe um usuario ou não?


8. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/09/2012 - 15:13h

Tem, mas é algo manual. Vc tem q especificar se a saída tem erro ($? = 1 ou 2) ou não ($? = 0). Outra forma é redirecionando a saída d erro (comando 2> texto.txt).


9. Re: Armazenar saida de outro script dentro de variavel [RESOLVIDO]

Wanderlei Lopes Pires Magri
wanderleimagri

(usa CentOS)

Enviado em 06/09/2012 - 15:42h

Opa funcionou
Obrigado
pra quem precisar ficou assim:

/usr/sbin/adduser $1 -g 231 -s /bin/false
if [ "$?" == "0" ];then

onde 0 é igual usuario nao existe eu acho


10. Uma resposta

Perfil removido
removido

(usa Nenhuma)

Enviado em 06/09/2012 - 15:48h

Amigo,

Primeiro eu não achei as opções -g e -s para o adduser.
Essas opções pertecem ao useradd ! ! ! (Testei no Debian 6)

Se o que você quer fazer for criar uma conta no grupo 231 para vários usuários então este grupo deve existir antes de dar esses comando!

A herança de variaveis é de pai para filho e não em sentido contrário.

Depois uma variável criada assim var="bla, bla" é local, para ser global precisa ser exportada e somente vale para os shells filhos.

Acho que esse script atende o que você precisa.

#!/bin/bash
usuario=$1
useradd $usuario -g 231 -s /bin/false && echo "Usuario $usuario teve a conta ativada..."

1 - Dê as permissões de execução
2 - Chame o script passando o nome
# ./ativa.sh maria

O resultado é a modificação de /etc/passwd:

maria:x:1002:231::/home/maria:/bin/false

Observe que o grupo padrão é 231 e o shell /bin/false.

Abraço.








  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts