Sida 1 av 1
Fråga angående if-sats i bash...
Postat: 08 dec 2010, 20:28
av Osprey
Vad fyller de små "x":en före variablerna för funktion i den här jämförelsen, borde inte villkoret vara exakt detsamma även utan dem..?
Re: Fråga angående if-sats i bash...
Postat: 08 dec 2010, 21:30
av Konservburk
Det har med portabilitet att göra. Oftast är det inte just
bash som har problem, utan det brukar snarare vara en del varianter av
/bin/sh som kan ställa till det, t.ex. den som följer med
solaris. Men det gäller i vissa speciella fall faktiskt även för
bash. Här har du ett exempel på när det kan bli fel:
Kod: Markera allt
XAUTHORITY=!
if [ "$XAUTHORITY" != "" ]
then
echo sant
else
echo falskt
fi
Alla moderna versioner av
bash svarar förstås med ordet
sant. Det gäller dock inte för riktigt gamla versioner från 90-talet där koden i else-delen körs istället eftersom du får ett felmeddelande i stil med
[: !=: unary operator expected.
Det är förstås föga troligt att variabeln
$XAUTHORITY är satt till ett utropstecken, men dock fullt möjligt.
Re: Fråga angående if-sats i bash...
Postat: 08 dec 2010, 22:14
av Osprey
Jag tackar så mycket för en jättebra förklaring...
Filen där jag noterade det är förresten /etc/acpi/sleep.sh