Codigo funciona no shell mas nao no script [RESOLVIDO]

1. Codigo funciona no shell mas nao no script [RESOLVIDO]

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 04/03/2019 - 23:20h

Boa noite,

Tenho esse comando no php, um shell_exec executando um script shell como root " shell_exec("sudo -u root bash ./xExec.sh"); " . Blz, até ai tudo funcionando, o problema é quando executo os comandos dentro do scrip, se eu executar fora do scrip, diretamente no shell, funciona normal.
O script é esse, segue:

#!/bin/bash -x
pSave="./pSave.txt"
( echo $pSave ; echo $pSave ) | /usr/bin/smbpasswd -s -a usuarioy

O script é básico, ele troca a senha do usuarioy ja cadastrado no samba em 1 só linha sem confirmação. A senha ta no arquivo txt, cuja a string foi capturada do campo senha do form php. O php ta funcionando, pois ele cria a string no arquivo txt , dando o cat no pSave.txt eu confirmo. O comando funciona diretamente no shell se eu trocar o campo da variavel $pSave por um caractere qualquer, por exemplo:
( echo 777 ; echo 777) | /usr/bin/smbpasswd -s -a usuarioy

Digitando assim no shell ele troca a senha do usuarioy por 777, porém, dentro do script não pega o conteúdo da variável pSave.txt.

Agradeço a ajuda de vocês. Feliz carnaval a todos e fiquem com a graça do Cristo!






  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/03/2019 - 15:14h

jorgessn escreveu:

Boa noite,

Tenho esse comando no php, um shell_exec executando um script shell como root " shell_exec("sudo -u root bash ./xExec.sh"); " . Blz, até ai tudo funcionando,
o problema é quando executo os comandos dentro do scrip, se eu executar fora do scrip, diretamente no shell, funciona normal.
O script é esse, segue:

#!/bin/bash -x
pSave="./pSave.txt"
( echo $pSave ; echo $pSave ) | /usr/bin/smbpasswd -s -a usuarioy

O script é básico, ele troca a senha do usuarioy ja cadastrado no samba em 1 só linha sem confirmação.
A senha ta no arquivo txt, cuja a string foi capturada do campo senha do form php. O php ta funcionando, pois ele cria a string no arquivo txt , dando o cat no pSave.txt eu confirmo. O comando funciona diretamente no shell se eu trocar o campo da variavel $pSave por um caractere qualquer, por exemplo:
( echo 777 ; echo 777) | /usr/bin/smbpasswd -s -a usuarioy

Digitando assim no shell ele troca a senha do usuarioy por 777, porém, dentro do script não pega o conteúdo da variável pSave.txt.

Agradeço a ajuda de vocês. Feliz carnaval a todos e fiquem com a graça do Cristo!

Boa tarde Jorge.
Faça:

pSave="$(cat ./pSave.txt)"
( echo $pSave ; echo $pSave ) | /usr/bin/smbpasswd -s -a usuarioy

Att.:
Marcelo Oliver

3. Codigo funciona no shell mas nao no script

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 05/03/2019 - 16:41h

Funcionou!
Obrigado Marcelo.


4. Re: Codigo funciona no shell mas nao no script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/03/2019 - 18:24h


jorgessn escreveu:

Funcionou!
Obrigado Marcelo.


Por nada Jorge.
Obrigado pela avaliação, precisando . . . .

Abç.:
Marcelo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts