Foros del Web » Administración de Sistemas » Unix / Linux »

Variables de php a Shell

Estas en el tema de Variables de php a Shell en el foro de Unix / Linux en Foros del Web. Objetivo: Crear un directorio de nombre x pasando la variable de un formulario a un php y pase la variable a un shell. Problema: El ...
  #1 (permalink)  
Antiguo 27/05/2005, 07:56
 
Fecha de Ingreso: abril-2002
Ubicación: Buacaramanga - Colombia
Mensajes: 46
Antigüedad: 22 años, 7 meses
Puntos: 0
Variables de php a Shell

Objetivo: Crear un directorio de nombre x pasando la variable de un formulario a un php y pase la variable a un shell.
Problema: El directorio se crea pero sin nombre y me aparece con un ? como nombre, Bueno y me diran "para que lo haces desde un formulario?...Lo necesito.... Por que no lo haces desde php directamente?...necesito pasar variables al shell desde php.

Formulario
Código PHP:
<H1>Ejemplo de llamado de shell scripts desde php</H1
Nombre del directorio a crear
<
FORM ACTION="test4.php" METHOD="GET"
<
INPUT TYPE="text" NAME="namedir"><BR
<
INPUT TYPE="submit" VALUE="Enviar"
</
FORM
test4.php
Código PHP:
 <?php
$output 
shell_exec('sh makedir1.sh $namedir');
echo 
"<pre>$output</pre>";
?>
makedir1.sh
Código PHP:
 #!/bin/bash
mkdir $namedir 
Muchas gracias por su colaboracion!!!
__________________
Tino
Linuxcol Soluciones Linux, Manuales, Noticias, foros, Seguridad
Linuxcol.com
  #2 (permalink)  
Antiguo 27/05/2005, 08:26
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años, 5 meses
Puntos: 35
Código:
$output = shell_exec('mkdir $namedir');
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #3 (permalink)  
Antiguo 27/05/2005, 09:46
 
Fecha de Ingreso: abril-2002
Ubicación: Buacaramanga - Colombia
Mensajes: 46
Antigüedad: 22 años, 7 meses
Puntos: 0
Pero mi objetivo es pasar la variable $namedir al shell, no quiero que lo haga php.
Alguna Luz sobre como pasar variables de php a shell ?
__________________
Tino
Linuxcol Soluciones Linux, Manuales, Noticias, foros, Seguridad
Linuxcol.com
  #4 (permalink)  
Antiguo 27/05/2005, 09:50
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años, 5 meses
Puntos: 35
Código:
export namedir=/valor/de/la/variable
mkdir $namedir
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #5 (permalink)  
Antiguo 27/05/2005, 13:30
 
Fecha de Ingreso: abril-2002
Ubicación: Buacaramanga - Colombia
Mensajes: 46
Antigüedad: 22 años, 7 meses
Puntos: 0
Código:
export namedir=/ruta/de/el/archivo.php
mkdir $namedir
Me crea un directorio con el nombre: archivo.php??
Pero no pasa la variable $namedir.... Alguna Luz?
__________________
Tino
Linuxcol Soluciones Linux, Manuales, Noticias, foros, Seguridad
Linuxcol.com
  #6 (permalink)  
Antiguo 27/05/2005, 13:46
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años, 5 meses
Puntos: 35
Pero si le has dado a la variable "namedir" el valor "archivo.php", ¿qué esperabas que creara? Obviamente te ha creado un directorio llamado "archivo.php".

En el archivo test4.php tienes que crear una variable en el shell usando la orden "export". Luego podrás usar esa variable desde cualquier script de la shell.

Pero, ¿para qué quieres usar variables? ¿No puedes pasarle el valor como parámetro a tu script? Algo así como "sh mi_script.sh variable1 variable2 ... variableN".
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #7 (permalink)  
Antiguo 27/05/2005, 15:08
 
Fecha de Ingreso: abril-2002
Ubicación: Buacaramanga - Colombia
Mensajes: 46
Antigüedad: 22 años, 7 meses
Puntos: 0
Muchas gracias por respoder
Cita:
Pero si le has dado a la variable "namedir" el valor "archivo.php", ¿qué esperabas que creara? Obviamente te ha creado un directorio llamado "archivo.php".
Compañero por su tono veo que sabe bastante del tema!! Mi objetivo al igual que el suyo en el foro es ayudar y aprender.

Cita:
En el archivo test4.php tienes que crear una variable en el shell usando la orden "export". Luego podrás usar esa variable desde cualquier script de la shell."
Que pena con ud pero no le entiendo, la orden export la uso en el shell o en el php?

Cita:
Pero, ¿para qué quieres usar variables? ¿No puedes pasarle el valor como parámetro a tu script? Algo así como "sh mi_script.sh variable1 variable2 ... variableN".
Creame que ya lo intente y me crea directorios con el nombre: ?
__________________
Tino
Linuxcol Soluciones Linux, Manuales, Noticias, foros, Seguridad
Linuxcol.com
  #8 (permalink)  
Antiguo 27/05/2005, 15:25
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años, 5 meses
Puntos: 35
La orden "export" sirve para crear una variable de ambiente en el shell Bash (si usas otro shell la sintaxis puede variar).

Desde tu archivo php debes realizar dos "shell_exec": uno para setear la variable de ambiente (usando "export namedir=lo_que_sea") y otro para ejecutar tu scritp (el que contiene la orden "makedir $namedir").

Pero insisto que la manera más lógica de hacer eso es con parámetros en lugar de variables de ambiente. O llamando directamente a "mkdir" en lugar de usar un script.

¿Qué es exactamente lo que quieres hacer? Es probable que a alguien de por acá se le ocurra una mejor manera de hacerlo.
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #9 (permalink)  
Antiguo 31/05/2005, 16:56
 
Fecha de Ingreso: abril-2002
Ubicación: Buacaramanga - Colombia
Mensajes: 46
Antigüedad: 22 años, 7 meses
Puntos: 0
Lo que quiero hacer es solo eso!! crear un directorio pasando el valor
formulario-html---> Script-php---> Shell-que ejecuta.
__________________
Tino
Linuxcol Soluciones Linux, Manuales, Noticias, foros, Seguridad
Linuxcol.com
  #10 (permalink)  
Antiguo 31/05/2005, 17:06
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años, 5 meses
Puntos: 35
Es que ahí está el punto. Si sólo quieres crear un directorio, no es necesario usar variables en la shell. En cambio, si quieres hacer algo más complicado, tal vez sí convenga hacerlo de esa manera.

Te repito que el procedimiento para setear una variable de ambiente en una shell es "export VARIABLE=valor_de_la_variable". Y luego puedes usar, por ejemplo, "mkdir $VARIABLE". Si eso no funciona, entonces es probable que tengas algún problema con tu shell... ¿o estás usando una shell distinta de Bash?
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
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 09:55.