The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Error al imprimir con comando set Shribigb Programación de scripts de shell y 0 03-06-2009 06:08 PM
alquitrán de error de salida retrasada forma permeables error chayato Linux 1 02-06-2009 12:07 AM
En el comando de la shell ksh - Imprimir "ABC" está dando el error sagarjani Programación de scripts de shell y 2 10-08-2008 04:32 PM
Personalizar la página de error cuando falla la autenticación tomcat sebagra Aplicaciones UNIX y Linux 0 05-06-2008 05:10 PM
en falla a329743 UNIX para usuarios avanzados y expertos 1 10-05-2006 10:08 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 04-23-2009
lavascript lavascript is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 47
Cómo imprimir y salida de error si falla?

Chicos algunos consejos acerca de la impresión de un cierto mensaje de error a stderr y salida en caso de que un comando ksh no dentro de un guión? Estoy tratando de algunos archivos de salida nula.

Contacto no es adecuado como i nula necesidad de ellos.
print ""> archivo no es adecuado como para comprobar la necesidad i elsehere para 0bytes si son o no.

He intentado por debajo de estos ejemplos, y ninguno funciona correctamente. No quiero tener que poner un cheque después de cada comando como: --

Código:
if [[ $? -ne 0 ]];then
   print "error blah blah" >&2
   exit 2
fi
A continuación las pruebas no funcionan correctamente. Estoy adivinando su desove algo.

Código:
OUTFILE=/tmp/out

# Null outfiles. Security already checked

> ${OUTFILE} || print "ERROR: blah blah \n" >&2 ; exit 2   #doesnt work

> ${OUTFILE} || (print "ERROR: blah blah \n" >&2 ; exit 2 )  #doesn't work

> ${OUTFILE} || (print "ERROR: blah blah \n" >&2 && exit 2) #doesnt work

if [[ -n "$(> ${OUTFILE} 2>&1)" ]];then
     print "ERROR: blah blah \n" >&2
     exit 2
fi    # doesnt work
Todas las ideas o alternativas?
  #2 (Enlace permanente)  
Old 04-23-2009
EagleFlyFree EagleFlyFree is offline
Usuario Registrado
  
 

Fecha: abril 2009
Publicaciones: 13
Específicamente acerca de la presentación de informes y de salir, este es un poco más condensada expresión:

Código:
test $condition || { print "Crap blew up; exiting"; exit 2; }
También puede probar directamente el resultado de su comando:

Código:
command || { print "Crap blew up; exiting"; exit 2; }
Me gusta leer en voz alta que a mí mismo como "bien de hacer esto o morir!", Como si threathening la secuencia de comandos.

Última edición por EagleFlyFree; al 04-23-2009 02:17 PM..
  #3 (Enlace permanente)  
Old 04-23-2009
lavascript lavascript is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 47
Gracias dude thats trabajó como un encanto.

Parece que estaba allí, pero casi no uso el correcto ()

¿Podría explicar la diferencia entre (y) () en el comando de la agrupación? También la notied i; al final) antes es de vital importancia el siguiente comando de otro modo no funciona.

por ejemplo,

Código:
This works and exits if cant null but echos got to here if can.

> ${OUTFILE} || { print "ERROR: cannot null output file. Exiting\n" >&2; exit 2; }
> ${TMPFILE} || { print "ERROR: cannot null tmp file. Exiting\n" >&2; exit 2; }

echo "got to here"

This doesnt work and never gets to echo even if null is successful

> ${OUTFILE} || { print "ERROR: cannot null output file. Exiting\n" >&2; exit 2 }
> ${TMPFILE} || { print "ERROR: cannot null tmp file. Exiting\n" >&2; exit 2 }

echo "got to here"
  #4 (Enlace permanente)  
Old 04-23-2009
EagleFlyFree EagleFlyFree is offline
Usuario Registrado
  
 

Fecha: abril 2009
Publicaciones: 13
() Ejecuta las declaraciones en una nueva subshell, con distintos estado. () Ejecuta cosas en el actual depósito.

Ejemplo:

Código:
(aVariable="hello"); echo $aVariable
este no se imprime "hola", porque la variable se le asignó dentro de un nuevo depósito, cuyo estado fue descartado cuando el () terminó expresión. Piense en el alcance de la variable C, las variables viven y mueren en el interior del bloque donde está declarado.

Código:
{aVariable="hello"; }; echo $aVariable
se imprime "hola", porque la variable se le asignó en el mismo depósito, la siguiente declaración.

Es la misma diferencia como:
Código:
sh myScript.sh
y
Código:
source myScript.sh


También, sí, necesita un punto y coma para poner fin a la última declaración dentro de (), que es como la cáscara de la gramática se define.
Tipo de cómo se puede hacer esto:
Código:
if $condition; then $statements; fi
o este, con saltos de línea en lugar de punto y coma para separar las partes de la sintaxis:
Código:
if $condition
then
    $statements
fi
Según la página de manual de bash, es diferente de (), porque (y) son palabras reservadas en lugar de metacaracteres, lo que significa que no se rompe automáticamente causa palabra. Presumiblemente el mismo se aplica en el resto de los depósitos.

Última edición por EagleFlyFree; al 04-23-2009 02:14 PM..
  #5 (Enlace permanente)  
Old 04-24-2009
lavascript lavascript is offline
Usuario Registrado
  
 

Fecha: abril 2009
Puestos: 47
Dude thats real y una gran respuesta informativa. Muchas gracias. Su duda que me da una mejor comprensión de la cáscara en vez de limitarse a tratar las cosas hasta que el trabajo
  #6 (Enlace permanente)  
Old 04-24-2009
EagleFlyFree EagleFlyFree is offline
Usuario Registrado
  
 

Fecha: abril 2009
Publicaciones: 13
No lo mencionan, me encanta yapping sobre bash.
Su página de manual es larga y difícil, pero cada película a través de él de vez en cuando, estás obligado a aprender gran cositas todo el tiempo.
Las partes sobre la historia y readline especialmente fresco, y que están a mano y divertido de usar.
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 11:04 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0