tcms Posted October 6, 2013 at 01:17 PM Report #527798 Posted October 6, 2013 at 01:17 PM Boas pessoal, Criei um pequeno shellscript que gera uma password. Depois executo dentro de outro SH esse SH generador. Neste ultimo, ao executar guardo a pass numa variavel. Depois ao tentar enviar o conteudo dessa variavel uso o seguinte comando: echo $pwd | mail - s "titulo" "e-mail" Sendo que $pwd é a minha variavel gerada. Mas o email enviado vai vazio...
rolando2424 Posted October 6, 2013 at 03:03 PM Report #527811 Posted October 6, 2013 at 03:03 PM (edited) Se trocares "$pwd" por uma string qualquer ela aparece no email? Por exemplo: echo "foobar" | mail - s "titulo" "e-email" Repara também que no teu comando tens um espaço entre o "-" e o "s" o que penso ser um bug (a flag que tu queres provavelmente é "-s"). Edited October 6, 2013 at 03:09 PM by rolando2424 Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
tcms Posted October 6, 2013 at 04:13 PM Author Report #527816 Posted October 6, 2013 at 04:13 PM Sim se meter uma string mesmo, envia... Mas se meter uma string gerada por um SH já nao
rolando2424 Posted October 6, 2013 at 05:06 PM Report #527817 Posted October 6, 2013 at 05:06 PM Se executares só o script que gera a password, ele funciona? Onde é que ele coloca a password? No stdout? Como é que estás a criar a variável "$pwd"? Com algo do estilo isto? pwd=`sh ./script_gera_password.sh` echo $pwd | mail - s "titulo" "e-email" Experimenta mudar o nome da varíavel. É que a bash tem uma variável $PWD (que guarda o teu diretorio atual) e pode estar alguma coisa a correr mal por causa disso. Apesar que as variáveis da shell costumam ser case-sensitive. Experimenta ir à segunda linha de ambos os script e meteres o seguinte código: set -x; Fazer isto deve fazer com que a shell gere um output de debug e possas ver os passos que o programa segue. Não me responsabilizo por qualquer dano ocorrido no seguimento dos meus conselhos. Prontos, a minha pessoa está oficialmente protegida legalmente 😄
eatg75 Posted October 6, 2013 at 05:10 PM Report #527818 Posted October 6, 2013 at 05:10 PM Penso que o problema persiste porque nao estas a colocar a string entre aspas, suponhas que a string na variavel $pwd contem espacos ao ser interpolado apenas parte da string e utilizada no contexto onde ela e excutavel. Nas shells TCSH e CSH os nomes das variaveis de ambiente sao em lowercase e a variavel que contem o nome da directoria actual e o $pwd, alterando o $pwd poderas estar a fazer com que a implementacao do comando pwd comporte mal, apesar de existirem variaveis de ambiente que sao so de leitura e ao serem atribuidos valores geram um erro, e sempre boa pratica nao atribuir valores a elas porque existem alguns que nao sao so de leitura. As chances de estares a utilizar a BASH sao bastante elevadas e no BASH o problema mencionado nao se verifica, mas e sempre bom seguir boas praticas. O que e a SH? Estao falar da Bourne Shell? Victarion seized the dusky woman by the wrist and pulled her to him. Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see. Moqorro's dark eyes seemed to shine. Moqorro - I see dragons.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now