Foros del Web » Programando para Internet » PHP »

Ejecutar un shell de Unix

Estas en el tema de Ejecutar un shell de Unix en el foro de PHP en Foros del Web. Hola Amigos¡ Necesito que me ayuden; quiero ejecutar un shell en Unix con PHP, al parecer podria hacerlo con la función exec, pero no hay ...
  #1 (permalink)  
Antiguo 07/03/2003, 08:40
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 2 meses
Puntos: 0
Ejecutar un shell de Unix

Hola Amigos¡
Necesito que me ayuden; quiero ejecutar un shell en Unix con PHP, al parecer podria hacerlo con la función exec, pero no hay suficiente información en php.net. Si alguien sabe como y me puede entregar información referencial lo agradeceria bastante.
Gracias.
  #2 (permalink)  
Antiguo 07/03/2003, 09:06
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 22 años, 1 mes
Puntos: 0
a ver... q creo q te estás liando, kieres ejecutar una shell desde php, o ejecutar un comando shell?

pq si es lo primero .... xDDD
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #3 (permalink)  
Antiguo 07/03/2003, 09:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
En la versión en ingles del manual de PHP sueles tener algo mas de información y mas extendida en la mayoría de casos ..

exec
Execute an external program (PHP 3, PHP 4 )
string exec ( string command [, array output [, int return_var]] )

Si ves la sintax de uso .. veras q le pasas a exec como primer parámentro una cadena con el comando a ejecutar. El segundo parámetro si lo usas te devuelve un array con la salida que proboque el comando que has ejecutdo .. y el tercer parámetro devuelve (si lo usas) un estado de la ejecución del comando (ahí no se detalla mucho q devuelve, es cierto .. )

Tambien te dice que si vas a usar exec() sin esperar recibir ninguna salida del comando q ejecutes . te recomienda que uses:
passthru()

Un ejemplo:

Código PHP:
<?
$salida
=array();
exec("ls -al",$salida,$codigo);

foreach (
$salida as $dato){
echo 
"<pre>$dato</pre>";
}

echo 
"<br> El código de salida fué: ".$codigo;
?>
Y sobre todo .. leete los comentarios de los usuarios de esas fuciones de acceso al sistema ... Tienen mas consejos y ejemplos que el propio manual oficial ..

Un saludo,

<editado>
Me faltó un detallito en el ejemplo .. el uso de <pre></pre> según se describe en:
http://www.php.net/manual/en/languag....execution.php

Última edición por Cluster; 07/03/2003 a las 09:51
  #4 (permalink)  
Antiguo 07/03/2003, 09:38
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 2 meses
Puntos: 0
gracias cluster , la verdar que estoy bastante extraviado con este sunto.
  #5 (permalink)  
Antiguo 07/03/2003, 09:43
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 22 años, 1 mes
Puntos: 0
joder, y lo q te ha dicho cluster no sale en php.net?
amos... yo flipo....


en fin... aunq peke de prepotente, o de cualkier otra cosa q se me dijo el otro dia, es q no me creo q haya leido nada.... pq o eso, o q .... en fín...

pq decir q ha mirado en php.net y dar por nuevo lo q le ha dicho cluster... algo no me cuadra...

bueno, para q no me digais q solo critico...

ahora, te digo, q el uso de exec, es inseguro... más aún con una instalacion por defecto de php, asi q, lee sobre seguridad en php.net, q si hay cosas.
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #6 (permalink)  
Antiguo 07/03/2003, 09:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Yo solo hice que "transcribir" lo que dice el manual y hacer un ejemplo básico ...

El caso q hice enfasis en la sintax de la función .. es bueno saber "leer" un manual de referencia .. No siempre hay ejemplos para todo .. Pero sabiendo lo que le entra a la función en concreto y lo que sale se puede ver la forma de hacer algo simple ...

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:37.