shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Here strings no /bin/sh


From: Julio C. Neves
Subject: Re: [shell-script] Here strings no /bin/sh
Date: Thu, 9 Jul 2015 13:48:46 -0300

Relendo está thread, vi que escrevi "O sh do LINUX é != ao sh do UNIX, já li que esse é o bash, do qual não gosto, mas que foi criado somente em nome da compatibilidade."
Isso deve ter sido causado pelo corretor pornografico ;) Nesse texto s/bash/dash/

Em 09/07/2015 07:10, "Alysson Gonçalves de Azevedo address@hidden [shell-script]" <address@hidden> escreveu:
 

Hmm, Fernando, talvez até tenha sido, mas tenho impressão que não (me corrijam por favor).

Quando executo o php pelo meu usuário, ele usa /bin/bash

$ php -r 'system("echo \$SHELL");'
/bin/bash

Um amigo, membro do grupo, me sugeriu em um email privado que eu alterasse o arquivo /etc/passwd e colocasse o user www-data para usar o bash. 
Não fiz isso pq o servidor é um pouquinho sentimental, mas tenho quase certeza que resolveria.




Alysson Gonçalves de Azevedo

"So Long, and Thanks For All the Fish"

Em 9 de julho de 2015 00:25, Fernando Mercês address@hidden [shell-script] <address@hidden> escreveu:
 

Boa noite, galera!

Só por curiosidade, o C usa chama o /bin/sh através da system(). Talvez por isso o PHP a use, já que é escrito em C (admitindo que a system() do PHP chame a system() do C). ;-)
Tanto é que uma vez um cara escreveu um desafio em C que fazia uma série de coisas no Linux e os participantes tinham que descobrir o que era. Como ele usou a system(), eu substituí o /bin/sh por um script contendo "echo $@" e vi todos os comandos. :D

No Debian o /bin/sh é o dash, uma versão do ash [1].

Abraços! o/



Att,

Fernando Mercês
mentebinaria.com.br
---------------------------

2015-07-01 14:53 GMT-03:00 Alysson Gonçalves de Azevedo address@hidden [shell-script] <address@hidden>:
 

Desculpe a demora, tava viajando.

Julio, eu sou um dos que não sabiam desse detalhe.  =D
Uma coisa que tentarei descobrir é pq o php usa sh e não o shell nativo do usuário, mas dai já é off-topic.

De qualquer forma, obrigado pela atenção.



Alysson Gonçalves de Azevedo

"So Long, and Thanks For All the Fish"

Em 27 de junho de 2015 11:05, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:
 

Fala Alyson,
tudo bem por aí?

Só quero deixar claro que existem outros interpretadores além do Bash nos quais destaco: sh (Bourne Shell) e ksh (Korn Shell) ambos do UNIX e o csh (c shell) do BSD. Os 2 primeiros são proprietários e portanto o LINUX não usa nenhum deles. O sh do LINUX é != ao sh do UNIX, já li que esse é o bash, do qual não gosto, mas que foi criado somente em nome da compatibilidade.

Queria esclarecer esse ponto pq muita gente não sabe disso e pensa que o sh do LINUX é o Borne Shell, ledo engano...

Voltando à sua pergunta, a resposta e não. O ksh não reconhece Here Strings e o sh muito menos.

Bom fim de semana para todos.

Abcs,
Julio
@juliobash
P
róximos cursos de Shell

Cidade         Local Período
Curitiba SoftCell 10/08 a 14/08
Rio de Janeiro EDX 31/08 a 04/09
São Paulo 4Linux 21/09 a 25/09
São Paulo 4Linux 07/12 a 11/12

Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 26 de junho de 2015 20:16, Alysson Gonçalves de Azevedo address@hidden [shell-script] <address@hidden> escreveu:
 

Olá pessoal, há um tempão que eu uso here strings nos comandos que preciso executar

at now <<< "echo teste from at"

mas acontece que agora eu preciso executar isso pelo php, e o php aparentemente usa o /bin/sh como shell, e isso faz com que o comando acima não funcione.

sh: 1: Syntax error: redirection unexpected

Eu contornei isso usando pipe mesmo

echo "echo teste from sh" | at now

Mas fiquei curioso pq não encontrei nada equivalente para o sh. Alguém sabe se tem?

Alysson Gonçalves de Azevedo

"So Long, and Thanks For All the Fish"






reply via email to

[Prev in Thread] Current Thread [Next in Thread]