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

Cómo obtener salida de un comando por c-shell

Estas en el tema de Cómo obtener salida de un comando por c-shell en el foro de Unix / Linux en Foros del Web. Hola, Estoy lanzando un comando en c shell pero no logro que la salida por pantalla me lo guarde en una variable, cuando en otros ...
  #1 (permalink)  
Antiguo 09/06/2009, 05:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Cómo obtener salida de un comando por c-shell

Hola,

Estoy lanzando un comando en c shell pero no logro que la salida por pantalla me lo guarde en una variable, cuando en otros lados si me lo hace.

Explico (c shell script):

Esto funciona, en lugar de ver por pantalla la salida de datos del comando se guarda en la variable.

Código:
set DATOS = `hcitool scan`;
echo $DATOS
En cambio si hago:

Código:
 set RESULT = `obexftp -b $DATOS[$AUX] -B $INFO[$CHANNEL] -U -p /home/samy/Escritorio/Pantallazo.png`
La salida de eso se sigue viendo por pantalla y la variable $RESULT está vacía.

Alguna idea del porqué? Me interesa tener la salida del comando para poder comprobar que la operación lo ha hecho bien o no...

MUchas gracias!
  #2 (permalink)  
Antiguo 08/07/2009, 03:53
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

Alguna idea?
  #3 (permalink)  
Antiguo 08/07/2009, 04:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

Ahora mismo, quiero guardar en una variable (o aunque sea en un fichero para cargarlo después!!) la salida del siguiente comando:

obexftp -b $DATOS[$AUX] -B $INFO[$CHANNEL] -U -p `echo $IMAGEN`

No hay manera, no lo logro haciendo

set mivar = `obexftp -b $DATOS[$AUX] -B $INFO[$CHANNEL] -U -p` `echo $IMAGEN`;

O bien

obexftp -b $DATOS[$AUX] -B $INFO[$CHANNEL] -U -p `echo $IMAGEN` > "mifichero"

No sé porqué me sale la salida del comando por la pantalla y no al fichero... Ideas please?

GRACIAS!
  #4 (permalink)  
Antiguo 08/07/2009, 07:13
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Respuesta: Cómo obtener salida de un comando por c-shell

Probá

Código bash:
Ver original
  1. varieble=$(comando)

Saludos
__________________
¡Volviendo a la programación!
  #5 (permalink)  
Antiguo 10/07/2009, 05:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

Hola AleSanchez!

Muchas gracias por tu ayuda. No me funciona, tienes idea de porqué puede ser?

set mivariable = $(obexftp -b $DATOS[$MAC] -B $DATOS[$CANAL] -U -p `echo $IMAGEN`)

tambien he probado sin poner "set" delante pero nada... Me dice, en los dos casos:

Illegal variable name.


Qué debería hacer? Muchísimas gracias por tu ayuda!

SAmy
  #6 (permalink)  
Antiguo 10/07/2009, 06:01
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Respuesta: Cómo obtener salida de un comando por c-shell

Cita:
Illegal variable name.
Eso creo que es porque no tenes que dejar espacios entre el nombre de la variable, el signo '=' y el valor.

Y ademas, fijate que dentro del mismo parámetro estas asignando otra variable con backticks.

Probá asi:

Código bash:
Ver original
  1. set mivariable=$(obexftp -b $DATOS[$MAC] -B $DATOS[$CANAL] -U -p $(echo $IMAGEN))
__________________
¡Volviendo a la programación!
  #7 (permalink)  
Antiguo 10/07/2009, 06:15
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

Hola AleSanchez!

Qué desesperación!

He probado tu código:

set SALIDA=$(obexftp -b $DATOS[$MAC] -B $DATOS[$CANAL] -U -p $(echo $IMAGEN))

Y me digue con lo mismo:

Illegal variable name.

Qué puedo hacer? No veo porqué no le gusta la variable...

Muchas gracias,

Samy
  #8 (permalink)  
Antiguo 11/07/2009, 11:17
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Respuesta: Cómo obtener salida de un comando por c-shell

¿Estás segura que estás corriendo el script con el shell correcto?
__________________
¡Volviendo a la programación!
  #9 (permalink)  
Antiguo 13/07/2009, 02:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

Hola AleSanchez!

MMmmm... El script es csh (lo tengo arriba del script declarado como tal), la extensión de fichero es csh y lo ejecuto así:

$csh micrscript.csh

Respondí la pregunta? Qué es lo que hago mal?

Muchísimas muchísimas gracias,

Samy
  #10 (permalink)  
Antiguo 16/07/2009, 04:42
 
Fecha de Ingreso: agosto-2008
Mensajes: 143
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

Hola AleSanchez y compañia!

Podrías echarle un nuevo vistazo a esto? No lo logro...

Samy
  #11 (permalink)  
Antiguo 17/07/2009, 16:49
 
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá
Mensajes: 1.024
Antigüedad: 21 años, 3 meses
Puntos: 1
Respuesta: Cómo obtener salida de un comando por c-shell

El manual lo dice:

http://www.dur.ac.uk/resources/its/i...s/3Cshells.pdf
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 20:40.