![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
| Skriv ut Feil med angitt kommando | Shribigb | Shell programmering og Skripting | 0 | 03-06-2009 06:08 |
| tar feil avkjørsel forsinket form pervious feil | chayato | Linux | 1 | 02-06-2009 12:07 |
| I ksh shell kommando - Skriv ut "-ABC" gir feil | sagarjani | Shell programmering og Skripting | 2 | 10-08-2008 04:32 |
| Tilpasset feilside når hannkatt godkjenning mislykkes | sebagra | UNIX og Linux-applikasjoner | 0 | 05-06-2008 05:10 |
| på kommandoen mislykkes | a329743 | UNIX for Advanced & ekspertbrukere | 1 | 10-05-2006 10:08 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Hvordan du skriver ut feil og avslutte hvis kommandoen mislykkes?
Fyrene noen tips om hvordan du skriver ut en feilmelding til stderr og spennende bør kommandoen mislykkes i en ksh script? Jeg prøver å null noen utdatafiler.
Touch er ikke egnet som jeg trenger å null dem. print "">-filen er ikke egnet som jeg må sjekke elsehere for hvis de 0bytes eller ikke. Jeg har prøvd disse nedenfor eksempler og ingen fungere riktig. Jeg ønsker ikke å sette et merke etter hver kommando som: -- Code:
if [[ $? -ne 0 ]];then print "error blah blah" >&2 exit 2 fi Code:
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
|
|
||||
|
Spesifikt om rapportering og spennende, dette er en litt mer kondensert idiom:
Code:
test $condition || { print "Crap blew up; exiting"; exit 2; }
Code:
command || { print "Crap blew up; exiting"; exit 2; }
Sist endret av EagleFlyFree; 04-23-2009 på 02:17.. |
|
||||
|
Takk dude dvs virket som en sjarm.
Synes jeg var nesten ferdig, men ikke brukte den riktige () Kan du forklare forskjellen mellom () og () i kommandoen gruppering? Også i notied det; på slutten før) er vitally viktig ellers neste kommandoen ikke fungerer. eg Code:
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"
|
|
||||
|
() Utfører utsagn i et nytt subshell, med egen stat. () Utfører ting i gjeldende shell.
Eksempel: Code:
(aVariable="hello"); echo $aVariable Code:
{aVariable="hello"; }; echo $aVariable
Det er den samme forskjellen som: Code:
sh myScript.sh Code:
source myScript.sh Og ja, du trenger et semikolon for å avslutte den siste setningen i (), som er hvordan Shells grammatikk er definert. Type hvor du enten kan gjøre dette: Code:
if $condition; then $statements; fi Code:
if $condition
then
$statements
fi
Sist endret av EagleFlyFree; 04-23-2009 på 02:14.. |
|
||||
|
Ikke nevne det, jeg elsker yapping om bash.
Sin mann siden er lang og skremmende, men flick gjennom den hver gang imellom; du er bundet til å lære store ting hver gang. Delene om historie og readline er særlig kult, og de er nyttige og morsomme å bruke. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|