Re: Shell som tar emot negativt exit status
> Hej. > > Har ett underligt problem som jag har försökt att hitta svaret på Internet > men har inte kunna komma på något sätt ännu. > > Skriptet som körs startar ett C-Program som avslutas med exit -1. > > När sedan skriptet försöker att skriva ut exit statusen från a.out så blir > det 255. Här nedan visar jag hur skriptet ser ut. ... > Är det någon som vet om det går att hämta ut exit status som är negativt i > shellskript. Har även provat med bash. > > /Simon exit(2) levererar bara sista byten i returvärdet och -1 & 0377 == 255. $ man exit 2>/dev/null | col -b | grep -A2 ^DESCRIP DESCRIPTION The exit() function causes normal program termination and the the value of status & 0377 is returned to the parent (see wait(2)). All func- Hälsningar, /Karl --- Karl HammarAspö Data [EMAIL PROTECTED] Lilla Aspö 2340 Nätverk S-742 94 Östhammar0173 140 57Datorer/Utrustning Sverige 070 511 97 84Linux/Unix konsulting --- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Shell som tar emot negativt exit status
Simon Johansson wrote: Skriptet som körs startar ett C-Program som avslutas med exit -1. När sedan skriptet försöker att skriva ut exit statusen från a.out så blir det 255. Här nedan visar jag hur skriptet ser ut. [...] Är det någon som vet om det går att hämta ut exit status som är negativt i shellskript. Har även provat med bash. Hej! Jag har inte en direkt lösning på ditt problem, men väl ett sätt att gå runt det. Tvåkomplementet av -1 i ett åttabitars tal är just 255. Funkar så här: Dec | Tvåkomplement (8-bitar) + 2 | 2 1 | 1 0 | 0 -1 |255 -2 |254 Den talrymd som kan uttryckas i ett åtta bitars signerat tal blir då +127 till -128. Ett åtta bitar osignerat tal kan representera värdena 0 till 255. Så det du behöver göra är att räkna om det returvärde som shellet ser till den ursprungliga. Subtrahera 256 ifån tal som är större än 127, så får du det ursprungliga, signerade, värdet. mvh, /Martin Leben -- Remove dashes and numbers (if any) to get my real email address. I subscribe to the mailing lists i write to. Please don't CC me on replies. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Shell som tar emot negativt exit status
Hej. Har ett underligt problem som jag har försökt att hitta svaret på Internet men har inte kunna komma på något sätt ännu. Skriptet som körs startar ett C-Program som avslutas med exit -1. När sedan skriptet försöker att skriva ut exit statusen från a.out så blir det 255. Här nedan visar jag hur skriptet ser ut. Skriptet test.sh: #!/bin/ksh ./a.out Status=$? echo echo $Status C-Programmet: [EMAIL PROTECTED]:~/test> cat simpelexit.c #include int main() { printf("Hello, World."); return -1; } [EMAIL PROTECTED]:~/test> Körning av test.sh: [EMAIL PROTECTED]:~/test> ./test.sh Hello, World. 255 [EMAIL PROTECTED]:~/test> Är det någon som vet om det går att hämta ut exit status som är negativt i shellskript. Har även provat med bash. /Simon