Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

1. Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 26/07/2021 - 22:41h

Boa noite a todos do vol. Estou com esse comando que funciona normalmente no bash do debian10, porém, no comando shell_exec dentro do php7 nao funciona.
Agradeço desde ja a ajuda.
Segue o comando dentro do exec:

shell_exec(awk 'NR>20 && /usuario/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" texto.txt";system(cmd);exit}' texto.txt)




  


2. MELHOR RESPOSTA

Buckminster
Buckminster

(usa Debian)

Enviado em 29/07/2021 - 02:19h

jorgessn escreveu:

Buckminster, assim funciona no bash direto nele, mas no php nao. Isso ai é uma maldição, rs. Ele apaga tudo antes da linha 65.
$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;


Bom, então o problema é algum caractere de escape ou alguma aspa.
O que eu posso dizer, além de que teu Debian está possuído pelo demônio, é que agora é na tentativa e erro, mas tu que tem acesso ao fonte todo vai tentando.
Tenta assim:
$comando = `awk '\""NR">65 && /$userDelete/\"{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;

3. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 29/07/2021 - 02:31h


jorgessn escreveu:

$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;

Sem aspas na var
[email protected]:$ [02:04:20] └─»
saida=`awk 'NR>10 && /$var/{c++;if(c=1) cmd="sed \""NR",+9!d;\" texto.txt";system(cmd);exit}' texto.txt` 

[email protected]:$ [02:04:38] └─» echo "$saida"
NADA NA SAIDA!

Com Aspas na var
[email protected]:$ [02:04:48] └─»
 saida=`awk 'NR>10 && /'$var'/{c++;if(c=1) cmd="sed \""NR",+5!d;\" texto.txt";system(cmd);exit}' texto.txt` 

[email protected]:$ [02:05:00] └─» echo "$saida"
/media/adminq/persistence/ALL/BACKUP/HISTORICO/
/media/adminq/persistence/ALL/BACKUP/HTML/
/media/adminq/persistence/ALL/BACKUP/images/
/media/adminq/persistence/ALL/BACKUP/INSTALL_SCRIPTS/
/media/adminq/persistence/ALL/BACKUP/KLM/

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________


4. Re: Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

5. Comando funciona no bash mas nao no php7

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 29/07/2021 - 00:30h


Boa noite comunidade, obrigado pela ajuda Buckminster, eu segui o site e mudei o comando mas mesmo assim nao respeita a condição de NR>65. Obrigado pela ajuda, segue o comando como ficou:

$comando=`awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd=sed -i \NR,+9d;\ /etc/samba/smb.conf;system(cmd);exit}' /etc/samba/smb.conf`;


6. Re: Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 29/07/2021 - 01:14h

Vê se dá certo assim:
$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;



7. Comando funciona no bash mas nao no shell_exec no php7

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 29/07/2021 - 01:43h

Buckminster, assim funciona no bash direto nele, mas no php nao. Isso ai é uma maldição, rs. Ele apaga tudo antes da linha 65.
$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;


8. Comando funciona no bash mas nao no shell_exec no php7

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 30/07/2021 - 01:50h


Buckminster, voce é uma onda viu kkkkkkkkkkk aqui até uma horas rapaz!. Obrigado pela ajuda! Seu codigo funciona tb igual ao do Oliver, mas continua não respeitando a condição NR>65 e apaga tudo nas linhas anteriores. Tentei com e sem as aspas.
$comando =`awk '\""NR">65 && /'$userDelete'/\"{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}'`;

MSOLIVER, obrigado pela dica! Mesmo assim com as aspas na variavel ele continua sem respeitar o NR>65 e apaga as linhas menores que 65.





9. Resolvido

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 30/07/2021 - 03:32h



Amigos, Buckminster, Oliver, peço desculpas, tinha um laco anterior anulando o comando de voces, agora funcionou, desculpem a perda de tempo por essa falta de atenção, obrigado a todos, de verdade, muito obrigado!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts