Aviseringar
Rensa alla

Bash hjälp


Ämnesstartare

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.


   
Citera
Ämnesetiketter
Ämnesstartare

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.


   
SvaraCitera
Åtta
$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.


   
SvaraCitera
Ämnesstartare

Å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.[y]


   
SvaraCitera

Ä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å.


   
SvaraCitera
Ämnesstartare

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.[smile]


   
SvaraCitera

aristoteles:

Precis, det kommer köras var femte sekund så det blir bra.[smile]

Bara att dra ner GHC på 80 MB då [cheers]


   
SvaraCitera
Ämnesstartare

alter ego:

Bara att dra ner GHC på 80 MB då [cheers]

Slöseri med resurser! Bash har jag ju redan.[cute]
Tänk på att jag bara har 4GB att röra mig på.[blush]


   
SvaraCitera

aristoteles:

Slöseri med resurser! Bash har jag ju redan.[cute]
Tänk på att jag bara har 4GB att röra mig på.[blush]

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 [no-no]

När du har kompilerat mitt program är det fritt fram att radera GHC [party]


   
SvaraCitera
Ämnesstartare

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 [no-no]

Hur ofta skripten körs påverkar inte mitt utrymme, resten av hårdvaran är finfin![no-no] Sitter på en eee med ssd.


   
SvaraCitera

aristoteles:

Hur ofta skripten körs påverkar inte mitt utrymme, resten av hårdvaran är finfin![no-no] 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.)


   
SvaraCitera
Ämnesstartare

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.[no-no]


   
SvaraCitera
sylar

aristoteles:

Slöseri med resurser! Bash har jag ju redan.[cute]
Tänk på att jag bara har 4GB att röra mig på.[blush]

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 : )


   
SvaraCitera

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.[no-no]

Du kan radera kompilatorn efteråt [no-no]


   
SvaraCitera
Ämnesstartare

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 [no-no]

Ja sa inte att du har fel, konstaterade bara att det är för krångligt för att jag ska orka.


   
SvaraCitera