The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
rsh script med i en for loop trekianov Shell programmering og Skripting 5 12-06-2008 12:39
mens loop problemer amatuer_lee_3 Shell programmering og Skripting 7 05-13-2008 01:48
Script ikke gjennomføre andre loop thumper Shell programmering og Skripting 2 05-07-2008 05:10
Mens loop problemer rcunn87 Shell programmering og Skripting 0 06-20-2006 05:26
ikke helt sikker på hvordan du sløyfe dette skriptet! moxxx68 Shell programmering og Skripting 3 09-09-2004 08: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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 09-15-2007
lodey lodey is offline
Registrert bruker
  
 

Bli Dato: Sep 2007
Innlegg: 29
Problemer med et hvis / deretter loop i et script

Hei,

Jeg har skrevet et script for å tømme ut loggfiler fra var / tmp dir. Det fungerer på opp til et punkt. Det jeg trengte å gjøre var å gå ut av skript hvis det ikke var noen filer som skal slettes. Jeg kan få dette med et testskriptet men når jeg implementere den i mitt program det feil ut med en `så` ikke Matchet feil. Jeg har spores til linjen i skriptet: hvis [TEMP \u003d "0"]; deretter

Kan noen ta en titt på den og teel meg hvor jeg har gått galt eller pek meg i riktig retning

Rgds
Colin

Her er utdrag fra manuset som jeg opprettet:

#! / bin / sh
#
# Set lokale variabler
USER \u003d `/ usr / bin / whoami`
ACCOUNT \u003d spesifikasjoner
HostName \u003d `/ usr / bin / hostname`
DATE \u003d `/ usr / bin / dato" +% Y% m% d "`
TEMP \u003d `finner / var / tmp /-name" perle * "-atime 3 | wc-l`
TEMPALL \u003d `finner / var / tmp /-atime 3 | wc-l`
# Rydd gamle Loggfiler
finne / users / agaff / nospace / logs /-name "*. txt"-atime 1 | xargs rm-f
# Hovedskjermbildet
klar
echo "<1> Slett GEM loggfiler på host:" $ HostName
echo "<2> Slett alle filer i / var / tmp (vedlikehold bare)"
echo "<3> Avslutt - ingen filer som skal slettes"
echo ""
echo "Tast 1 eller 2 eller 3"
les SVAR
hvis [$ answer \u003d "1"]; deretter
klar
echo "Undersøke Loggfiler for host:" $ HostName
echo ""
hvis [$ TEMP \u003d "0"]; deretter # (det er her det bomber ut)
ekko
ekko
echo "************************************************ *** "
echo "Det er ingen loggfilene skal slettes fra host:" $ HostName
ekko
elif [$ TEMP> "0"];

echo "***********************************************"
echo "Det er" $ TEMP "loggfiler som kan slettes fra host:" $ HostName
echo ""
echo ""
echo "<1> Slett GEM loggfiler på Host" $ HostName "i / var / tmp katalogen"
echo "<2> Avslutt - ingen filer som skal slettes"
echo ""
echo "Tast 1 eller 2"
echo ""
les ANS1
hvis [$ ANS1 \u003d "1"]; deretter
klar
echo ""
echo ""
echo "Slette GEM LogFiles Loggfiler"
mkdir-p / brukere / agaff / nospace / logs /
finne / var / tmp /-name "perle *"-atime 3> / brukere / agaff / nospace / logs / $ DATE "-" $ HostName "-logger. txt | xargs-f> / dev / null 2> & 1
echo ""
echo "************************************************ ************************"
echo "tmp Logger er nå slettet og logfile oppdatert"
echo ""
echo ""
elif [$ ANS1 \u003d "2"]; deretter
echo "Exiting"
ellers
echo "Ugyldig valg, spennende ..."
exit
fi
  #2 (permalink)  
Old 09-15-2007
kamitsin's Avatar
kamitsin kamitsin is offline
Registrert bruker
  
 

Bli Dato: november 2006
Sted: / dev / null
Innlegg: 177
Buddy, det bombet hele steder.

Store feil.

1) Du gjorde heltall comparisoin på mange steder bruker feil operatør.

2) Mange syntaksfeil i echo

3) Jeg liker ikke strukturen i manuset. Du bør bruke "case struktur stedet.

4) Hvis setningen ikke lukket

Forandringer script:
PS: Jeg har endret noen baner i manuset å se på mitt 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
Skål,
K
  #3 (permalink)  
Old 09-15-2007
lodey lodey is offline
Registrert bruker
  
 

Bli Dato: Sep 2007
Innlegg: 29
Tusen takk for hjelpen

Jeg er ny på Unix scripting, og jeg lærer så jeg går så Evry litt hjelp er velkommen

Nå har jeg et script
  #4 (permalink)  
Old 09-18-2007
dewets dewets is offline
Registrert bruker
  
 

Bli Date: Mar 2007
Beliggenhet: Somerset West, Sør-Afrika
Innlegg: 10
Bare å legge meg 0.02c verdt:

Utnytt innrykk i Skriptskriving! Det gjør vedlikehold på skriptet bare SOOO mye lettere.

Prøver å finne en nestet elif kommando i blant alle dere "echo" er var ganske annet:

#! / bin / sh
#
# Set lokale variabler
USER \u003d `/ usr / bin / whoami`
ACCOUNT \u003d Compaq
HostName \u003d `/ usr / bin / hostname`
DATE \u003d `/ usr / bin / dato" +% Y% m% d "`
TEMP \u003d `find. -name "perle *" | wc-l `
TEMPALL \u003d `find. | Wc-l `
# Rydd gamle Loggfiler
# finne / users / agaff / nospace / logs /-name "*. txt"-atime 1 | xargs rm-f
# Hovedskjermbildet
klar
echo "<1> Slett GEM loggfiler på host:" $ HostName
echo "<2> Slett alle filer i / var / tmp (vedlikehold bare)"
echo "<3> Avslutt - ingen filer som skal slettes"
echo ""
echo "Tast 1 eller 2 eller 3"
les SVAR
hvis [$ SVAR-eq "1"]; deretter
klar
echo "Undersøke Loggfiler for host:" $ HostName
echo ""
hvis [$ TEMP-eq "0"]; deretter # (det er her det bomber ut)
ekko
ekko
echo "*******************************************"
echo "Det er ingen loggfilene skal slettes fra host:" $ HostName
ekko
elif [$ TEMP-gt "0"];

echo "****************************************"
echo "Det er" $ TEMP "loggfiler som kan slettes fra vertsdatamaskinen:"
$ HostName
echo ""
echo ""
echo "<1> Slett GEM loggfiler på Host" $ HostName "i / var / tmp katalogen"
echo "<2> Avslutt - ingen filer som skal slettes"
echo ""
echo "Tast 1 eller 2"
echo ""
les ANS1
hvis [$ ANS1-eq "1"]; deretter
klar
echo ""
echo ""
echo "Slette GEM LogFiles Loggfiler"
# mkdir-p / brukere / agaff / nospace / logs /
# finner / var / tmp /-name "perle *"-atime 3> / brukere / agaff / nospace / logs / $ DATE "-" $ HOST
NAME "-logger. Txt | xargs-f> / dev / null 2> & 1
echo ""
echo "*******************************************"
echo "tmp Logger er nå slettet og logfile oppdatert"
echo ""
echo ""
elif [$ ANS1-eq "2"]; deretter
echo "Exiting"
ellers
echo "Ugyldig valg, spennende ..."
exit
fi
fi
fi



Her endeth våre lesbarhet leksjon for i dag ...
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 07:33.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0