Jo jag skulle vilja ha hjälp på ett troligen väldigt enkelt problem.
Jag vill göra ett bashscript som läser en fil och beroende på filens innehåll skriver ut en text till standard out.
Filen har tre olika lägen, 768,769,770.
Dessa lägen skall representera Performance, Normal, Powersave.
Jag tänkte att det med enkla variabler skulle kunna lösas men eftersom jag varken kan programmera eller är speciellt hemma på bash så blir det inte riktigt rätt.
#!/bin/bash
S768=Performance
S769=Normal
S770=Powersave
echo $S`cat /sys/devices/platform/eeepc/she`
Detta ger mig bara innehållet i filen "she", medans jag tycker att den borde ge output $S"filens innehåll" som skulle ha resulterat i rätt variabel.
Det finns säkerligen mycket enklare lösningar, tänkte höra om nån vet vad jag gör fel eller hur jag borde göra.
Med lite trial and error så fick jag till en rätt vettig lösning:
#!/bin/bash
if [ "$(cat /sys/devices/platform/eeepc/she)" == '770' ];
then
echo "Powersave";
else
if
[ "$(cat /sys/devices/platform/eeepc/she)" == '769' ];
then
echo "Normal";
else
if
[ "$(cat /sys/devices/platform/eeepc/she)" == '768' ];
then
echo "Performance";
fi
fi
fi
Kom gärna med förslag om det går att göra på andra sätt.
$VAR = $(cat /sys/devices/platform/eeepc/she)
case '$VAR' in
770)
echo "Powersave";
;;
769)
echo "Normal";
;;
768)
echo "Performance";
;;
*)
echo "Something is wrong. /sys/devices/platform/eeepc/she = " + $VAR
;;
esac
Sitter inte i Linux, så jag kan inte kolla om jag har rätt, men det känns som att det här torde vara enklare och aningen snyggare.
Åtta:
Sitter inte i Linux, så jag kan inte kolla om jag har rätt, men det känns som att det här torde vara enklare och aningen snyggare.
Ska prova senare, det såg iaf bättre ut även om båda funkar.
Äsch, alla vet alla Haskell är det lämpligaste språket för dylikt scriptande.
main = readFile "/sys/devices/platform/eeepc/she" >>= putStr . mode
where
mode "768" = "Performance"
mode "769" = "Normal"
mode "770" = "Powersave"
aristoteles:
funk
Nejmen allvarligt, det ger bättre prestanda åtminstone, förutsatt att du ska köra programmet varje sekund eller så.
alter ego:
Nejmen allvarligt, det ger bättre prestanda åtminstone, förutsatt att du ska köra programmet varje sekund eller så.
Precis, det kommer köras var femte sekund så det blir bra.
aristoteles:
Precis, det kommer köras var femte sekund så det blir bra.
Bara att dra ner GHC på 80 MB då
alter ego:
Bara att dra ner GHC på 80 MB då
Slöseri med resurser! Bash har jag ju redan.
Tänk på att jag bara har 4GB att röra mig på.
aristoteles:
Slöseri med resurser! Bash har jag ju redan.
Tänk på att jag bara har 4GB att röra mig på.
Om du har så lite utrymme antar jag att du behöver spara på resurserna, och då kan du absolut inte köra skalskript hela tiden
När du har kompilerat mitt program är det fritt fram att radera GHC
alter ego:
Om du har så lite utrymme antar jag att du behöver spara på resurserna, och då kan du absolut inte köra skalskript hela tiden
Hur ofta skripten körs påverkar inte mitt utrymme, resten av hårdvaran är finfin! Sitter på en eee med ssd.
aristoteles:
Hur ofta skripten körs påverkar inte mitt utrymme, resten av hårdvaran är finfin! Sitter på en eee med ssd.
Nice, vill ha en sån jag med. Hursomhelst ordar jag för mitt program. Det är faktiskt bara en tredjedel så långt som åttas skalskript, och lär köras flera millisekunder snabbare! (Du slipper faktiskt ladda skaltolken.)
alter ego:
Det är faktiskt bara en tredjedel så långt som åttas skalskript, och lär köras flera millisekunder snabbare! (Du slipper faktiskt ladda skaltolken.)
Säkert helt sant, men med tanke på att diskutrymme är min enda undermåliga resurs så ser jag ingen anledning till att besvära sig att hämta hem en kompilator för att kompilera några rader för en funktion jag redan har.
aristoteles:
Slöseri med resurser! Bash har jag ju redan.
Tänk på att jag bara har 4GB att röra mig på.
Varför inte köra Dash isåfall? Det ska vara mer lightweight, tar mindre utrymme och exekverar de flesta bashscript snabbare. Snabbar dessutom upp uppstartstiden : )
aristoteles:
Säkert helt sant, men med tanke på att diskutrymme är min enda undermåliga resurs så ser jag ingen anledning till att besvära sig att hämta hem en kompilator för att kompilera några rader för en funktion jag redan har.
Du kan radera kompilatorn efteråt
sylar:
Varför inte köra Dash isåfall?
Sorry det kanske jag inte sa men det gör jag.
alter ego:
Du kan radera kompilatorn efteråt
Ja sa inte att du har fel, konstaterade bara att det är för krångligt för att jag ska orka.