Shell script com PHP

Este artigo nos introduz ao mundo da programação shell script, nos apresentando de forma na prática todo o seu poder, com exemplos de integração de shell script, PHP e MySQL.

[ Hits: 145.080 ]

Por: Eduardo Assis em 26/08/2003 | Blog: http://www.proredes.com.br


Shell, PHP e banco de dados



Utilizaremos agora conexão com o banco de dados MySQL.

Vamos entender que você já sabe mexer com MySQL e que tem um banco criado com o nome de intranet e uma tabela com as seguintes características:
  • nome da tabela: agenda
  • campos: nome, tel
Tendo isso configurado passaremos para o script:

#!/bin/bash

echo -n "Digite o Nome: "
read nome
echo -n "Digite o numero de seu Telefone: "
read tel
/usr/bin/php -q << PHP
<?
\$host = "localhost";
\$user = "usuario";
\$senha = "senha";
\$conexao = mysql_connect(\$host,\$user,\$senha); mysql_select_db("intranet", \$conexao);
\$insert = "insert into agenda (nome,tel) values ('$nome','$tel')";
mysql_query(\$insert,\$conexao);
echo "Dados Inseridos com Sucesso !!! \n";
?>
PHP

Nesse exemplo o usuário digitará o nome e depois um telefone e será gravado na tabela.

Script para consulta de dados no banco:

#!/bin/bash

echo -n "Digite o nome para ser consultado: "
read nome
/usr/bin/php -q << PHP
<?
\$host = "localhost";
\$user = "usuario";
\$senha = "senha";
\$conexao = mysql_connect(\$host,\$user,\$senha); mysql_select_db("intranet", \$conexao);
\$consultar_login="select * from agenda where nome like '%$nome%'";
\$resultado=mysql_query(\$consultar_login,\$conexao) or die (mysql_error());
while(\$campo = mysql_fetch_array(\$resultado)) { \$nome = \$campo["nome"]; \$tel = \$campo["tel"];
echo "\$nome | \$tel \n" ; }
?>
PHP

Aqui estamos usando uma consulta com a opção de like no SQL, bastando para isso digitar apenas uma palavra para consulta.

Vamos entender o que acontece com o insert e com o consulta

Abrimos a script com shell script (#!/bin/bash) e depois colocamos outro interpretador dentro dele (/usr/bin/php -q << PHP). Para finalizarmos usamos o comando PHP e podemos ainda continuar com o shell script normalmente.

Só mais um lembrete: para usarmos variáveis do shell script dentro do PHP usamos a variável ($) seguido do nome do campo e para usarmos variáveis dentro do PHP, usamos (\) seguido do caractere ($), ficando assim:

\$nome

Página anterior     Próxima página

Páginas do artigo
   1. Começando com shell script
   2. Integrando shell com PHP
   3. Shell, PHP e banco de dados
   4. Conclusão
Outros artigos deste autor

Carregando scripts ao se logar no Samba

Autenticando usuários Windows no Linux (PDC)

Explorando o NFS do mrluk

Configurando um servidor de e-mail para pequenas redes

Configuração do Speedy Home da Telefônica (ou Velox)

Leitura recomendada

Ingressando estações de trabalho Ubuntu no AD com Closed In Directory

Script de firewall completíssimo

Executando backup do MySQL e enviando por FTP

getopts: criando scripts Bash com parâmetros e argumentos personalizáveis

Blacklist - O que é? Como consultar o IP? Como automatizar?

  
Comentários
[1] Comentário enviado por dinho_rock em 27/08/2003 - 03:05h

Muito legal seu artigo, mas vale lembrar que você pode fazer o script usando só o PHP, sem programar nada como shell script.

Um abraço
Thiago

[2] Comentário enviado por tucs em 27/08/2003 - 12:23h

Claro que sim ... quis dizer como interagir com o Shell Script ...
Programo em PHP e em Shell Scripts ...
Quando tenho que fazer algo no Servidor Linux e naum da para fazer em PHP passando parametros para o Linux uso Shell Script e tenho certeza que quem usa Shell Script nunca vai usar PHP...
Pois eh o meu caso
Esse artigo fiz no intuito de aprendizagem para alguem ...
e espero que ajude ...

[3] Comentário enviado por dinho_rock em 29/08/2003 - 15:36h

Só para constar, para passar paramentros pelo php via shell, basta usar a variavel $argv;

Por exemplo, php -q arquivo.php variavel1 variavel2 variavel3

Vai resultar em:

$argv[0] = "arquivo.php";
$argv[1] = "variavel1";
$argv[2] = "variavel2";
$argv[3] = "variavel3";

Um abraço
Thiago

[4] Comentário enviado por gustavo_marcon em 05/09/2003 - 16:30h

muito bom este artigo....

estava c/ problemas no desenvolvimento de um projeto em php pelo user do apache não ter permissão de criar users.

agora posso mesclar os dois e ver no que vai dar....

[5] Comentário enviado por tucs em 05/09/2003 - 17:38h

gustavo_marcon

Eu tenho uma solucao para issu ...
Tinha mandado para o Fabio publicar ... mas naum sei o que aconteceu que ele ainda naum publico ... mas era assim ...
site em PHP que cadastrava usuarios na Banco de Dados e depois no Linux e Samba ... fiz para uma escola de Informatica e esta rodando muito bem ...

[6] Comentário enviado por tucs em 05/09/2003 - 17:43h

gustavo_marcon

Eu tenho uma solucao para issu ...
Tinha mandado para o Fabio publicar ... mas naum sei o que aconteceu que ele ainda naum publico ... mas era assim ...
site em PHP que cadastrava usuarios na Banco de Dados e depois no Linux e Samba ... fiz para uma escola de Informatica e esta rodando muito bem ...

[7] Comentário enviado por tucs em 05/09/2003 - 17:43h

gustavo_marcon

Eu tenho uma solucao para issu ...
Tinha mandado para o Fabio publicar ... mas naum sei o que aconteceu que ele ainda naum publico ... mas era assim ...
site em PHP que cadastrava usuarios na Banco de Dados e depois no Linux e Samba ... fiz para uma escola de Informatica e esta rodando muito bem ...

[8] Comentário enviado por gustavo_marcon em 08/09/2003 - 14:41h

Eu consegui passar as variáveis do shell pro php colocando \ na frente da variavel, mas ñ sei como fazer p/ fassar variáveis do php pro shell, pois tentei com e sem a \ e não seu certo

[9] Comentário enviado por gustavo_marcon em 08/09/2003 - 18:52h

ñ dá certo passar as variáveis do php pro shell pelo seguinte:
quando terminamos de usar o compilador php usamos o comando PHP p/ mostrar que deve ser encerrado o compilador shell.

Dai as variáveis são perdidas..
Preciso muito fazer funcionar, alguém sabe como faço???

[10] Comentário enviado por gustavo_marcon em 13/09/2003 - 10:45h

olá tucs, notei que o fábio ainda ñ publicou aquele seu artigo sobre o sudo, eu estou precisando disto, será que vc poderia me enviar por email??

[11] Comentário enviado por cesarfontenele em 25/11/2003 - 08:57h

Tucs muito bom seu artigo... Gostaria de receber o outro artigo q vc interage com um site cadastrando seus usuarios no linux e samba. Vc pode me mandar por email??

Falow

[12] Comentário enviado por cesarfontenele em 25/11/2003 - 08:58h

Tucs muito bom seu artigo... Gostaria de receber o outro artigo q vc interage com um site cadastrando seus usuarios no linux e samba. Vc pode me mandar por email??

Falow

[13] Comentário enviado por leogenilhu em 16/12/2003 - 23:00h

muito bom seu artigo so tenho uma duvida
para usar esta interacao shell/php
meu php pode estar compilado com modulo do apache ?



[14] Comentário enviado por gustavo_marcon em 12/02/2004 - 18:16h

Olá tucs tudo bem? Lembro q uma vez vc me mandou um script seu q criava usuários no linux usando o sudo. Foi bastante útil p/ mim, mas eu perdi ele e estou precisando do esquema novamente pois tenho q desenvolver um sistema c/ permissão de desligar o servidor atrávez de uma página web hospedada no apache do mesmo servidor. Será q vc poderia fazer o favor de me enviar esse script novamente p/ mim tirar as idéias principais? É muito importante.

Obrigado!

[15] Comentário enviado por gustavo_marcon em 12/02/2004 - 18:17h

Olá tucs tudo bem? Lembro q uma vez vc me mandou um script seu q criava usuários no linux usando o sudo. Foi bastante útil p/ mim, mas eu perdi ele e estou precisando do esquema novamente pois tenho q desenvolver um sistema c/ permissão de desligar o servidor atrávez de uma página web hospedada no apache do mesmo servidor. Será q vc poderia fazer o favor de me enviar esse script novamente p/ mim tirar as idéias principais? É muito importante.

Obrigado!

[16] Comentário enviado por claudiano em 24/07/2004 - 11:07h

gostaria tambem desse script (sudo) meu email: claudianolopes@hotmail.com, caso vcs tenham um script para mostrar o ip da maquina (não da conexao - pq utiliza um servidor nat) eu agradeceria.

claudiano lopes

[17] Comentário enviado por lordpeark em 14/06/2005 - 17:28h

Fino o script, mas faltou um esac no final para finalizar o case..mas valeu..gostei do script..

[18] Comentário enviado por raphael.sx em 02/08/2006 - 09:22h

Esse artigo, pra quem gosta de programar em PHP, é muito interessante. E mostra também como o shell script e é claro o Linux são poderosos. Valeu!

[19] Comentário enviado por yetlinux em 09/10/2006 - 06:02h

Graças à esse recurso chamado de she-bang podemos fazer coisas loucas nos unices da vida.

Experimentem digitar um texto qualquer como:

--BEGIN--
Falta alguma coisa no Brasil
depois da noite de sexta-feira.
Falta aquele homem no escritório
a tirar da máquina elétrica
o destino dos seres,
a explicação antiga da terra.

Falta uma tristeza de menino bom
caminhando entre adultos
na esperança da justiça
que tarda - como tarda!
a clarear o mundo.

Falta um boné, aquele jeito manso,
aquela ternura contida, óleo
a derramar-se lentamente.

Falta o casal passeando no trigal.

Falta um solo de clarineta.
--END--

Vamos chamar de poema.

coloquem na primeira linha exatamente como está abaixo:
#!/usr/bin/cat

mudem a permissão de escrita
$ chmod +x poema

e a seguir executem o arquivo.

[20] Comentário enviado por coffani em 09/06/2008 - 23:29h

Ja esta no meu favoritos.........

[21] Comentário enviado por gestordesistemas em 18/05/2010 - 09:29h

Para funcionar este PHP como shell tive que instalar o php-cli

apt-get install php-cli



[22] Comentário enviado por leandrosoaresluz em 22/03/2011 - 21:03h

brother, da um força? tenho o seguinte script em shell

#!/bin/bash

echo ""
echo -n "informe o nome do usuario:"
read nome

htpasswd -p /usr/local/squid/etc/senhas_squid $nome

echo
echo "novo usuario $nome criado com sucesso"
echo




pronto!

esse cara cria o usuario no meu arquivo de usuarios do squid...funciona que eh uma beleza via linha
de comando, meu problema é: uso o squidadmin para gerenciamento do squid e preciso chamar esse .sh dentro da minha pagina php...eis ai o problema, ja tentei de varias formas e nao consegui fazer funcionar...tem ideia de como seria? abraços

[23] Comentário enviado por aldisseia em 27/02/2015 - 12:39h

Ta dando esse erro
Exception: Zend Extension ./quem.php does not exist
Dentro do arquivo tá assim
#!/usr/bin/php -q
<?php
echo "Ok";
?>


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts