The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
rsh script met binnenin een lus trekianov Programmeren en Shell Scripting 5 12-06-2008 12:39
while lus problemen amatuer_lee_3 Programmeren en Shell Scripting 7 05-13-2008 12:48 AM
Script niet uitvoeren tweede lus Thumper Programmeren en Shell Scripting 2 05-07-2008 04:10 PM
While lus problemen rcunn87 Programmeren en Shell Scripting 0 06-20-2006 04:26 PM
niet helemaal zeker hoe lus dit script! moxxx68 Programmeren en Shell Scripting 3 09-09-2004 07:00

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-15-2007
lodey lodey is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2007
Posts: 29
Problemen met een als / dan lus binnen een script

Hi there,

Ik heb een script geschreven om de logboekbestanden van de var / tmp richt. Het werkt tot een punt. Wat ik moest doen was om het script als er geen bestanden te worden verwijderd. Ik kan dit werk aan een test script, maar toen ik de uitvoering van het in mijn programma dat fouten uit met een "dan" niet geëvenaard fout. Ik heb getraceerd aan de regel in het script: if [TEMP \u003d "0"]; vervolgens

Kan iemand eens te bekijken en teel me waar ik heb er mis ging of het punt me in de goede richting

Rgds
Colin

Hier is het uittreksel uit het script dat ik gemaakt:

#! / bin / sh
#
# Stel lokale variabelen
User \u003d "/ usr / bin / whoami`
ACCOUNT \u003d specs
HOSTNAME \u003d `/ usr / bin / hostname"
DATUM \u003d `/ usr / bin / date" +% Y% m% d ""
TEMP \u003d `find / var / tmp /-naam" gem * "-atime +3 | wc-l`
TEMPALL \u003d `find / var / tmp /-atime +3 | wc-l`
# Purge oud Logboekbestanden
find / gebruikers / agaff / nospace / logs /-name "*. txt"-atime +1 | xargs rm-f
# Main Screen
helder
echo "<1> Verwijderen GEM logboekbestanden op host:" $ HOSTNAME
echo "<2> Verwijder alle bestanden in de / var / tmp (alleen onderhoud)"
echo "<3> Afsluiten - geen bestanden te worden verwijderd"
echo ""
echo "Voer 1 of 2 of 3"
lees ANTWOORD
if [$ answer \u003d "1"]; vervolgens
helder
echo "Examining Logboekbestanden voor host:" $ HOSTNAME
echo ""
if [$ temp \u003d "0"]; vervolgens # (dit is waar zij bommen uit)
echo
echo
echo "************************************************ *** "
echo "Er zijn geen logboekbestanden worden geschrapt uit host:" $ HOSTNAME
echo
elif [$ TEMP> "0"];
dan
echo "***********************************************"
echo "Er zijn" $ TEMP "log bestanden die kunnen worden geschrapt van host:" $ HOSTNAME
echo ""
echo ""
echo "<1> Verwijderen GEM logboekbestanden op Host" $ hostname "in / var / tmp directory"
echo "<2> Afsluiten - geen bestanden te worden verwijderd"
echo ""
echo "Voer 1 of 2"
echo ""
lees ANS1
if [$ ANS1 \u003d "1"]; vervolgens
helder
echo ""
echo ""
echo "Deleting GEM LogFiles Log Files"
mkdir-p / gebruikers / agaff / nospace / logs /
find / var / tmp /-naam "gem *"-atime +3> / gebruikers / agaff / nospace / logs / $ date "-" $ HOSTNAME "-logs". txt | xargs-f> / dev / null 2> & 1
echo ""
echo "************************************************ ************************"
echo "Tmp Logs zijn nu verwijderd en logbestand bijgewerkt"
echo ""
echo ""
elif [$ ANS1 \u003d "2"], vandaar
echo "afsluiten"
anders
echo "Ongeldige selectie, spannend ..."
afrit
fi
  #2 (permalink)  
Old 09-15-2007
kamitsin's Avatar
kamitsin kamitsin is offline
Geregistreerde gebruiker
  
 

Join Date: november 2006
Locatie: / dev / null
Posts: 177
Buddy, het gebombardeerd overal plaatsen.

Grote fouten.

1) U deden integer comparisoin op vele plaatsen het gebruik van de verkeerde exploitant.

2) veel syntaxisfout in echo

3) Ik hou niet van de structuur van uw script. U dient gebruik 'case' structuur plaats.

4) als verklaring niet goed gesloten

Bewerkt script:
PS: Ik heb een aantal paden in het script om te controleren op mijn systeem.

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
Sante,
K
  #3 (permalink)  
Old 09-15-2007
lodey lodey is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2007
Posts: 29
Thanks a lot for your help

Ik ben nieuw voor Unix scripting en ben leren als ik ga zo Evry beetje hulp is welkom

Nu heb ik een werkende script
  #4 (permalink)  
Old 09-18-2007
dewets dewets is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Plaats: Somerset West, Zuid-Afrika
Posts: 10
Gewoon om mijn 0.02c waard:

Maak gebruik van inspringen in het script schrijven! Het maakt het onderhoud van uw script gewoon sooo veel gemakkelijker.

Zoeken naar een geneste elif commando in tussen alle u "echo" 't is niet niks:

#! / bin / sh
#
# Stel lokale variabelen
User \u003d "/ usr / bin / whoami`
ACCOUNT \u003d Compaq
HOSTNAME \u003d `/ usr / bin / hostname"
DATUM \u003d `/ usr / bin / date" +% Y% m% d ""
TEMP \u003d `find. -name "gem *" | wc-l `
TEMPALL \u003d `find. | Wc-l `
# Purge oud Logboekbestanden
# find / gebruikers / agaff / nospace / logs /-name "*. txt"-atime +1 | xargs rm-f
# Main Screen
helder
echo "<1> Verwijderen GEM logboekbestanden op host:" $ HOSTNAME
echo "<2> Verwijder alle bestanden in de / var / tmp (alleen onderhoud)"
echo "<3> Afsluiten - geen bestanden te worden verwijderd"
echo ""
echo "Voer 1 of 2 of 3"
lees ANTWOORD
if [$ ANTWOORD-eq "1"]; vervolgens
helder
echo "Examining Logboekbestanden voor host:" $ HOSTNAME
echo ""
if [$ TEMP-eq "0"]; vervolgens # (dit is waar zij bommen uit)
echo
echo
echo "*******************************************"
echo "Er zijn geen logboekbestanden worden geschrapt uit host:" $ HOSTNAME
echo
elif [$ TEMP-gt "0"];
dan
echo "****************************************"
echo "Er zijn" $ TEMP "log bestanden die kunnen worden geschrapt van host:"
$ HOSTNAME
echo ""
echo ""
echo "<1> Verwijderen GEM logboekbestanden op Host" $ hostname "in / var / tmp directory"
echo "<2> Afsluiten - geen bestanden te worden verwijderd"
echo ""
echo "Voer 1 of 2"
echo ""
lees ANS1
if [$ ANS1-eq "1"]; vervolgens
helder
echo ""
echo ""
echo "Deleting GEM LogFiles Log Files"
# mkdir-p / gebruikers / agaff / nospace / logs /
# find / var / tmp /-naam "gem *"-atime +3> / gebruikers / agaff / nospace / logs / $ date "-" $ HOST
NAAM "-logs". Txt | xargs-f> / dev / null 2> & 1
echo ""
echo "*******************************************"
echo "Tmp Logs zijn nu verwijderd en logbestand bijgewerkt"
echo ""
echo ""
elif [$ ANS1-eq "2"], vandaar
echo "afsluiten"
anders
echo "Ongeldige selectie, spannend ..."
afrit
fi
fi
fi



Hier endeth onze leesbaarheid les voor vandaag ...
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 03:03.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0