The UNIX and Linux Forums  

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
rsh script con el interior de un bucle for trekianov Programación de scripts de shell y 5 12-06-2008 12:39 PM
bucle while problemas amatuer_lee_3 Programación de scripts de shell y 7 05-13-2008 01:48 AM
Ejecución de secuencias de comandos no segundo bucle marcarritmo Programación de scripts de shell y 2 05-07-2008 05:10 PM
Bucle while problemas rcunn87 Programación de scripts de shell y 0 06-20-2006 05:26 PM
no estaba muy seguro de cómo bucle este script! moxxx68 Programación de scripts de shell y 3 09-09-2004 08:00 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 09-15-2007
lodey lodey is offline
Usuario Registrado
  
 

Fecha: Sep 2007
Puestos: 29
Problemas con un si / entonces bucle dentro de un script

Hola,

He escrito un script para limpiar archivos de registro de la var / tmp dir. Funciona hasta cierto punto. Lo que necesitaba hacer era salir de la secuencia de comandos si no hay archivos que desea eliminar. Puedo conseguir trabajo en una secuencia de comandos de prueba pero cuando su aplicación en mi programa que los errores con un «no» a continuación, acompañada de error. Tengo que localizar a la línea en la secuencia de comandos: si [TEMP \u003d "0"]; a continuación,

Alguien podría echar un vistazo a él y Teel me tengo que salió mal o me punto en la dirección correcta

Rgds
Colin

Aquí está el extracto del guión que he creado:

#! / bin / sh
#
# Establezca las variables locales
USUARIO \u003d `/ usr / bin / whoami»
CUENTA \u003d especificaciones
HOSTNAME \u003d `/ usr / bin / hostname`
FECHA \u003d `/ usr / bin / date +% Y% m% d" `
TEMP \u003d `find / var / tmp /-name" * joya "-atime +3 | wc-l»
TEMPALL \u003d `find / var / tmp /-atime +3 | wc-l»
# Purgar los archivos de registro antiguos
find / usuarios / agaff / NoSpace / logs /-name "*. txt"-atime +1 | xargs rm-f
# Pantalla principal
claro
echo "<1> GEM Eliminar archivos de registro de acogida:" $ HOSTNAME
echo "<2> Eliminar todos los archivos en el directorio / var / tmp (sólo mantenimiento)"
echo "<3> Salir - sin que se eliminen los archivos"
echo ""
echo "Introduzca 1 o 2 o 3"
leer RESPUESTA
if [$ RESPUESTA \u003d "1"] y, a continuación,
claro
echo "Examinar los archivos de registro para el anfitrión:" $ HOSTNAME
echo ""
if [$ TEMP \u003d "0"]; entonces # (esto es donde las bombas)
eco
eco
echo "************************************************ *** "
echo "No hay archivos de registro, debe suprimirse del anfitrión:" $ HOSTNAME
eco
elif [$ TEMP> "0"];
entonces
echo "***********************************************"
echo "Hay" $ TEMP "archivos de registro que puede ser eliminado de acogida:" $ HOSTNAME
echo ""
echo ""
echo "<1> Borrar archivos de registro en GEM anfitriona" $ HOSTNAME "en el directorio / var / tmp directory"
echo "<2> Salir - sin que se eliminen los archivos"
echo ""
echo "Introduzca 1 o 2"
echo ""
leer ANS1
if [$ ANS1 \u003d "1"] y, a continuación,
claro
echo ""
echo ""
echo "Borrar archivos de registro del GEM, los archivos de registro"
mkdir-p / usuarios / agaff / NoSpace / logs /
find / var / tmp /-name "* joya"-atime 3> / usuarios / agaff / NoSpace / registros / $ FECHA "-" $ HOSTNAME "-logs". txt | xargs-f> / dev / null 2> & 1
echo ""
echo "************************************************ ************************"
echo "Registros Tmp se suprime el 'log' y actualizada"
echo ""
echo ""
elif [$ ANS1 \u003d "2"]; a continuación,
echo "Salir"
algo más
echo "no válido de selección, de salir ..."
salida
fi
  #2 (Enlace permanente)  
Old 09-15-2007
kamitsin's Avatar
kamitsin kamitsin is offline
Usuario Registrado
  
 

Fecha: noviembre 2006
Ubicación: / dev / null
Puestos: 177
Buddy, es bombardeada por todo el lugar.

Principales errores.

1) Usted estaba haciendo entero comparisoin en muchos lugares el mal uso de operador.

2) lote de error de sintaxis en eco

3) No me gusta la estructura de su guión. Usted debe utilizar el caso de la estructura de su lugar.

4) declaración si no se cierra correctamente

Modificado script:
PD: Me han modificado algunas rutas en el guión, para comprobar en mi sistema.


Código:
#!/bin/sh
#
# Set local variables
USER=`/usr/bin/whoami`
ACCOUNT=Compaq
HOSTNAME=`/usr/bin/hostname`
DATE=`/usr/bin/date "+%Y%m%d"`
TEMP=`find . -name "gem*" | wc -l`
TEMPALL=`find .  | wc -l`
# Purge old Log Files
#find /users/agaff/nospace/logs/ -name "*.txt" -atime +1|xargs rm -f
# Main Screen
clear
echo "<1> Delete GEM log files on host: " $HOSTNAME
echo "<2> Delete ALL Files in the /var/tmp ( maintenance only ) "
echo "<3> Exit - no files to be deleted"
echo ""
echo " Enter 1 or 2 or 3"
read ANSWER
if [ $ANSWER -eq "1" ]; then
clear
echo "Examining Log Files for host: " $HOSTNAME
echo ""
if [ $TEMP -eq "0" ]; then #(this is where it bombs out)
echo
echo
echo "***************************************************"
echo "There are no log files to be deleted from host:" $HOSTNAME
echo
elif [ $TEMP -gt "0" ];
then
echo "***********************************************"
echo "There are " $TEMP "log files that can be deleted from host:" $HOSTNAME
echo ""
echo ""
echo "<1> Delete GEM log files on Host" $HOSTNAME "in the /var/tmp directory"
echo "<2> Exit - no files to be deleted"
echo ""
echo " Enter 1 or 2"
echo""
read ANS1
if [ $ANS1 -eq "1" ]; then
clear
echo ""
echo ""
echo "Deleting GEM Logfiles Log Files"
#mkdir -p /users/agaff/nospace/logs/
#find /var/tmp/ -name "gem*" -atime +3 > /users/agaff/nospace/logs/$DATE"-"$HOST
NAME"-logs".txt| xargs -f >/dev/null 2>&1
echo ""
echo "************************************************************************"
echo "Tmp Logs are now deleted and logfile updated"
echo ""
echo ""
elif [ $ANS1 -eq "2" ]; then
echo "Exiting"
else
echo "Invalid selection, exiting..."
exit
fi
fi
fi

¡Salud!,
K
  #3 (Enlace permanente)  
Old 09-15-2007
lodey lodey is offline
Usuario Registrado
  
 

Fecha: Sep 2007
Puestos: 29
Muchas gracias por su ayuda

Soy nuevo en Unix scripting y yo estoy aprendiendo como ir tan Evry poco de ayuda es bienvenida

Ahora tengo un guión de trabajo
  #4 (Enlace permanente)  
Old 09-18-2007
dewets dewets is offline
Usuario Registrado
  
 

Fecha: marzo 2007
Ubicación: Somerset West, Sudáfrica
Puestos: 10
Sólo añadir mi 0.02c valor:

Hacer uso de sangrado en la redacción de guiones! Se hace el mantenimiento en su script SOOO sólo mucho más fácil.

Tratando de encontrar un comando elif anidados en todo lo que entre "echo" "s fue algo bastante:

#! / bin / sh
#
# Establezca las variables locales
USUARIO \u003d `/ usr / bin / whoami»
CUENTA \u003d Compaq
HOSTNAME \u003d `/ usr / bin / hostname`
FECHA \u003d `/ usr / bin / date +% Y% m% d" `
TEMP \u003d `find. -name "* joya" | wc-l »
TEMPALL \u003d `find. | Wc-l »
# Purgar los archivos de registro antiguos
# find / usuarios / agaff / NoSpace / logs /-name "*. txt"-atime +1 | xargs rm-f
# Pantalla principal
claro
echo "<1> GEM Eliminar archivos de registro de acogida:" $ HOSTNAME
echo "<2> Eliminar todos los archivos en el directorio / var / tmp (sólo mantenimiento)"
echo "<3> Salir - sin que se eliminen los archivos"
echo ""
echo "Introduzca 1 o 2 o 3"
leer RESPUESTA
if [$ RESPUESTA-eq "1"] y, a continuación,
claro
echo "Examinar los archivos de registro para el anfitrión:" $ HOSTNAME
echo ""
if [$ TEMP-eq "0"]; entonces # (esto es donde las bombas)
eco
eco
echo "*******************************************"
echo "No hay archivos de registro, debe suprimirse del anfitrión:" $ HOSTNAME
eco
elif [$ TEMP-gt "0"];
entonces
echo "****************************************"
echo "Hay" $ TEMP "archivos de registro que puede ser eliminado de acogida:"
$ HOSTNAME
echo ""
echo ""
echo "<1> Borrar archivos de registro en GEM anfitriona" $ HOSTNAME "en el directorio / var / tmp directory"
echo "<2> Salir - sin que se eliminen los archivos"
echo ""
echo "Introduzca 1 o 2"
echo ""
leer ANS1
if [$ ANS1-eq "1"] y, a continuación,
claro
echo ""
echo ""
echo "Borrar archivos de registro del GEM, los archivos de registro"
# mkdir-p / usuarios / agaff / NoSpace / logs /
# find / var / tmp /-name "* joya"-atime 3> / usuarios / agaff / NoSpace / registros / $ FECHA "-" $ ANFITRIÓN
NOMBRE "-logs". Txt | xargs-f> / dev / null 2> & 1
echo ""
echo "*******************************************"
echo "Registros Tmp se suprime el 'log' y actualizada"
echo ""
echo ""
elif [$ ANS1-eq "2"] y, a continuación,
echo "Salir"
algo más
echo "no válido de selección, de salir ..."
salida
fi
fi
fi



Aquí nuestro endeth legibilidad lección para el día de hoy ...
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 01:21 AM.


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