|
| bash script Fra : Kim Hansen |
Dato : 16-11-03 23:35 |
|
Jeg har et program med følgende konstruktion indbygget:
RESULT=`prog1 | prog2`
Exit-status fra prog2 ligger i $?, men hvordan får jeg fat i
exit-status fra prog1?
--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.
| |
Klaus Ellegaard (16-11-2003)
| Kommentar Fra : Klaus Ellegaard |
Dato : 16-11-03 23:50 |
|
Kim Hansen <k-spam2003@oek.dk> writes:
> RESULT=`prog1 | prog2`
>Exit-status fra prog2 ligger i $?, men hvordan får jeg fat i
>exit-status fra prog1?
Det gør man ikke umiddelbart. Man kan dog pakke "prog1" ind
i et shellscript, der smider $? ud i en temporær fil eller
noget tilsvarende. Men pænt bliver det aldrig.
Mvh.
Klaus.
| |
Kim Hansen (16-11-2003)
| Kommentar Fra : Kim Hansen |
Dato : 16-11-03 23:54 |
|
Kim Hansen <k-spam2003@oek.dk> writes:
> Jeg har et program med følgende konstruktion indbygget:
>
> RESULT=`prog1 | prog2`
>
> Exit-status fra prog2 ligger i $?, men hvordan får jeg fat i
> exit-status fra prog1?
Fik et hint på IRC om at kigge på $PIPESTATUS[0]
Eksempel:
backup@amanda $ false | true ; echo ${PIPESTATUS }
1 0
--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.
| |
Klaus Ellegaard (17-11-2003)
| Kommentar Fra : Klaus Ellegaard |
Dato : 17-11-03 00:07 |
|
Kim Hansen <k-spam2003@oek.dk> writes:
>backup@amanda $ false | true ; echo ${PIPESTATUS }
>1 0
$ false | true ; echo ${PIPESTATUS }
bad substitution
Det er vist en løsning, der er meget afhængig af miljøet
Men okay, hvis det kun skal virke i en specifik sammenhæng, er
det jo helt perfekt.
Mvh.
Klaus.
| |
Kim Hansen (17-11-2003)
| Kommentar Fra : Kim Hansen |
Dato : 17-11-03 00:13 |
|
Klaus Ellegaard <klausellegaard@msn.com> writes:
> Kim Hansen <k-spam2003@oek.dk> writes:
>
> >backup@amanda $ false | true ; echo ${PIPESTATUS }
> >1 0
>
> $ false | true ; echo ${PIPESTATUS }
> bad substitution
>
> Det er vist en løsning, der er meget afhængig af miljøet
Hov, jeg glemte at skrive at det var Bash. (Bortset fra i Subject, men
det læser jeg heller ikke selv)
Hvilken shell testede du med?
--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.
| |
Klaus Ellegaard (17-11-2003)
| Kommentar Fra : Klaus Ellegaard |
Dato : 17-11-03 00:16 |
|
Kim Hansen <k-spam2003@oek.dk> writes:
>Hov, jeg glemte at skrive at det var Bash. (Bortset fra i Subject, men
>det læser jeg heller ikke selv)
Nåja, det er svært at se helt derop
>Hvilken shell testede du med?
Bourne og Korn shells.
Mvh.
Klaus.
| |
Kim Hansen (17-11-2003)
| Kommentar Fra : Kim Hansen |
Dato : 17-11-03 00:43 |
|
Kim Hansen <k-spam2003@oek.dk> writes:
> Kim Hansen <k-spam2003@oek.dk> writes:
>
> > Jeg har et program med følgende konstruktion indbygget:
> >
> > RESULT=`prog1 | prog2`
> >
> > Exit-status fra prog2 ligger i $?, men hvordan får jeg fat i
> > exit-status fra prog1?
>
> Fik et hint på IRC om at kigge på $PIPESTATUS[0]
> Eksempel:
>
> backup@amanda $ false | true ; echo ${PIPESTATUS }
> 1 0
Øv, det ser ud til at jeg ikke helt har fået løst problemet, når jeg
bruger `` til at fange output bliver den første exitstatus smidt væk.
backup@amanda $ X=`false | true` ; echo ${PIPESTATUS }
0
--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.
| |
|
|