/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
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.

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste