The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
rsh-Skript mit in einer for-Schleife trekianov Shell Programmierung und Scripting 5 12-06-2008 12:39 PM
while-Schleife Probleme amatuer_lee_3 Shell Programmierung und Scripting 7 05-13-2008 12:48 AM
Script nicht Vollstreckungsstaat zweiten Schleife Klopfer Shell Programmierung und Scripting 2 05-07-2008 04:10 PM
While-Schleife Probleme rcunn87 Shell Programmierung und Scripting 0 06-20-2006 04:26 PM
nicht ganz sicher, wie man die Schleife dieses Skript! moxxx68 Shell Programmierung und Scripting 3 09-09-2004 07: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 Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 09-15-2007
lodey lodey is offline
Registrierte Nutzer
  
 

Join Date: Sep 2007
Beiträge: 29
Probleme mit einem, wenn / dann Schleife in einem Skript

Hi there,

Ich habe ein Skript, um die Log-Dateien aus der var / tmp dir. Es funktioniert bis zu einem gewissen Punkt. Was ich brauchte war zu tun, um das Skript, wenn es keine Dateien gelöscht werden soll. Ich kann diese Arbeit an einem Test-Skript, aber wenn ich Umsetzung in mein Programm es Fehler mit einem "dann" nicht mit Fehler. Ich habe sie verfolgt, um die Zeile in das Skript: if [ "TEMP" \u003d "0"]; dann

Könnte jemand einen Blick auf sie und teel mir, wo ich schief gelaufen ist oder Nummer mich in die richtige Richtung

Rgds
Colin

Hier ist der Auszug aus dem Skript, das ich erstellt:

#! / bin / sh
#
# Setzen der lokalen Variablen
USER \u003d "/ usr / bin / whoami`
KONTO \u003d Angaben
HOSTNAME \u003d "/ usr / bin / hostname`
DATE \u003d `/ usr / bin / date" +% Y% m% d "`
TEMP \u003d `find / var / tmp /-name" * Perle "-atime +3 | wc-l`
TEMPALL \u003d `find / var / tmp /-atime +3 | wc-l`
# Entfernen alten Log-Dateien
find / users / agaff / nospace / logs /-name "*. txt"-atime +1 | xargs rm-f
# Hauptfenster
klar
echo "<1> Löschen GEM-Log-Dateien auf dem Rechner:" $ HOSTNAME
echo "<2> Löschen Sie alle Dateien im Verzeichnis / var / tmp (Wartung nur)"
echo "<3> Exit - keine Dateien gelöscht werden sollen"
echo ""
echo "Geben Sie 1 oder 2 oder 3"
ANTWORT lesen
if [$ answer \u003d "1"]; dann
klar
echo "Prüfung der Log-Dateien für die Gastgeber:" $ HOSTNAME
echo ""
if [$ temp \u003d "0"]; then # (das ist dort, wo es Bomben out)
echo
echo
echo "************************************************ *** "
echo "Es gibt keine Log-Dateien auf dem Server gelöscht werden:" $ HOSTNAME
echo
elif [$ temp> "0"];
dann
echo "***********************************************"
echo "Es gibt" $ TEMP "Log-Dateien, die gelöscht werden können, vom Host:" $ HOSTNAME
echo ""
echo ""
echo "<1> Löschen GEM-Log-Dateien auf dem Host" $ hostname "in der Datei / var / tmp-Verzeichnis"
echo "<2> Exit - keine Dateien gelöscht werden sollen"
echo ""
echo "Geben Sie 1 oder 2"
echo ""
Lesen Sie ANS1
if [$ ANS1 \u003d "1"]; dann
klar
echo ""
echo ""
echo "GEM Logfiles löschen Log-Dateien"
mkdir-p / users / agaff / nospace / logs /
find / var / tmp /-name "* Perle"-atime 3> / users / agaff / nospace / logs / $ DATE "-" $ HOSTNAME "-Protokolle". txt | xargs-f> / dev / null 2> & 1
echo ""
echo "************************************************ ************************"
echo "Tmp-Protokolle sind nun gelöscht und aktualisiert logfile"
echo ""
echo ""
elif [$ ANS1 \u003d "2"]; dann
echo "Beenden"
sonst
echo "Ungültige Auswahl, exiting ..."
Ausfahrt
fi
  #2 (permalink)  
Old 09-15-2007
kamitsin's Avatar
kamitsin kamitsin is offline
Registrierte Nutzer
  
 

Join Date: Nov 2006
Location: / dev / null
Beiträge: 177
Buddy, es bombardiert alle über die Plätze.

Wesentliche Fehler.

1) Sie taten integer comparisoin an vielen Orten mit dem Betreiber falsch.

2) Menge Syntaxfehler in echo

3) Ich weiss nicht, wie Sie die Struktur der Schrift. Sie sollten "Fall"-Struktur statt.

4) if-Anweisung nicht korrekt geschlossen

Geändert Script:
PS: Ich habe ein paar Pfade geändert in das Skript zu prüfen, auf meinem System.

Code:
#!/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
Prost,
K
  #3 (permalink)  
Old 09-15-2007
lodey lodey is offline
Registrierte Nutzer
  
 

Join Date: Sep 2007
Beiträge: 29
Vielen Dank für Ihre Hilfe

Ich bin neu bei Unix-Scripting und lerne, wie ich gehen, damit jeder etwas Hilfe ist willkommen

Jetzt habe ich ein Skript arbeiten
  #4 (permalink)  
Old 09-18-2007
dewets dewets is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Ort: Somerset West, Südafrika
Beiträge: 10
Nur, um meine 0.02c wert:

Nutzen Sie Einrückungen im Drehbuch! Es macht Wartungsarbeiten an Ihr Skript nur SOOO viel einfacher.

Bemüht sich um eine geschachtelte elif Kommando in alles, was Sie unter "echo" 's war etwas:

#! / bin / sh
#
# Setzen der lokalen Variablen
USER \u003d "/ usr / bin / whoami`
KONTO \u003d Compaq
HOSTNAME \u003d "/ usr / bin / hostname`
DATE \u003d `/ usr / bin / date" +% Y% m% d "`
TEMP \u003d `find. -name "Juwel *" | wc-l `
TEMPALL \u003d `find. | Wc-l `
# Entfernen alten Log-Dateien
# find / users / agaff / nospace / logs /-name "*. txt"-atime +1 | xargs rm-f
# Hauptfenster
klar
echo "<1> Löschen GEM-Log-Dateien auf dem Rechner:" $ HOSTNAME
echo "<2> Löschen Sie alle Dateien im Verzeichnis / var / tmp (Wartung nur)"
echo "<3> Exit - keine Dateien gelöscht werden sollen"
echo ""
echo "Geben Sie 1 oder 2 oder 3"
ANTWORT lesen
if [$ ANSWER-eq "1"]; dann
klar
echo "Prüfung der Log-Dateien für die Gastgeber:" $ HOSTNAME
echo ""
if [$ TEMP-eq "0"]; then # (das ist dort, wo es Bomben out)
echo
echo
echo "*******************************************"
echo "Es gibt keine Log-Dateien auf dem Server gelöscht werden:" $ HOSTNAME
echo
elif [$ TEMP-gt "0"];
dann
echo "****************************************"
echo "Es gibt" $ TEMP "Log-Dateien, die gelöscht werden können, vom Host:"
$ HOSTNAME
echo ""
echo ""
echo "<1> Löschen GEM-Log-Dateien auf dem Host" $ hostname "in der Datei / var / tmp-Verzeichnis"
echo "<2> Exit - keine Dateien gelöscht werden sollen"
echo ""
echo "Geben Sie 1 oder 2"
echo ""
Lesen Sie ANS1
if [$ ANS1-eq "1"]; dann
klar
echo ""
echo ""
echo "GEM Logfiles löschen Log-Dateien"
# mkdir-p / users / agaff / nospace / logs /
# find / var / tmp /-name "* Perle"-atime 3> / users / agaff / nospace / logs / $ DATE "-" $ HOST
NAME "-Protokolle". Txt | xargs-f> / dev / null 2> & 1
echo ""
echo "*******************************************"
echo "Tmp-Protokolle sind nun gelöscht und aktualisiert logfile"
echo ""
echo ""
elif [$ ANS1-eq "2"]; dann
echo "Beenden"
sonst
echo "Ungültige Auswahl, exiting ..."
Ausfahrt
fi
fi
fi



Hier unsere endeth Lesbarkeit Lektion für heute ...
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:26 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0