bash script mit fehler ???

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Voyager_MP
Beiträge: 628
Registriert: 22.06.2004 10:04:07
Wohnort: Aachen

bash script mit fehler ???

Beitrag von Voyager_MP » 12.08.2004 09:05:00

#!/bin/bash
if on_ac_power; then
echo "Warning: Power switched from Battery to AC" | wall
/usr/local/bin/xscreensaver.sh
else
echo "Warning: Power switched from AC to Battery" | wall
# /usr/local/bin/xscreensaver.sh
until [ $BATTERY -lt 76 ]; do
sleep 10
echo "Current status: $BATTERY%"
done
echo "Battery: $BATTERY %"
echo "halt"
# echo "Battery status is under 2 %, System will go down in 1 Minute" | wall
fi



Current status: 76%
Current status: 76%
Current status: 76%
Current status: 76%
Current status: 76%

obwohl
acpitool -b
Battery #1 : discharging, 74.02%, 03:14:36

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 12.08.2004 09:24:13

Code: Alles auswählen

until [ $BATTERY -lt 76 ]; do 
sleep 10 
echo "Current status: $BATTERY%" 
done 
Wo wird denn die "BATTERY" Variable ausgelesen?

Wenn du davor die einmal ausliest und dann in die Schleife gehst, verändert sich der Wert von "BATTERY" ja nie mehr?!!!
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Voyager_MP
Beiträge: 628
Registriert: 22.06.2004 10:04:07
Wohnort: Aachen

Beitrag von Voyager_MP » 12.08.2004 09:56:22

BATTERY=`/usr/local/bin/acpitool -b | gawk '{print $5}' | sed -e 's/\..*//'`

gehört unter #!/bin/bash

ist bei kopieren verlohren gegangen

Ich habs jetzt hinbekommen, seint mir aber nicht sauber zu sein, kannst ja mal einen blick drüber werfen.

ac.sh
-------------------
#!/bin/bash
BATTERY=`/usr/local/bin/acpitool -b | gawk '{print $5}' | sed -e 's/\..*//'`
#`cat /proc/acpi/battery/BAT0/state | gawk 'NR == 5 {print $3}'`

if on_ac_power; then
echo "Warning: Power switched from Battery to AC" | wall
ln -sf /home/michel/.xscreensaver_ac /home/michel/.xscreensaver
PID=`cat /var/lock/battery`
TRUE=`ps ax | grep $PID | gawk '{print $6}' |grep battery`
RESULT=$?
if [ $RESULT -eq 0 ]; then
kill -9 $PID
fi
else
echo "Warning: Power switched from AC to Battery" | wall
echo $BATTERY %
/etc/acpi/battery.sh &
ln -sf /home/michel/.xscreensaver_battery /home/michel/.xscreensaver
fi


battery.sh
-----------------
echo $$ >/var/lock/battery

BATTERY=`/usr/local/bin/acpitool -b | gawk '{print $5}' | sed -e 's/\..*//'`

until [ $BATTERY -le 2 ]; do
BATTERY=`acpitool -b | gawk '{print $5}' | sed -e 's/\..*//'`
echo $BATTERY%
sleep 10
done

echo "Battery status is under 2%, System will go down in 1 Minute" | wall
sleep 1m
/sbin/shutdown -t now

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 12.08.2004 15:39:03

@Voayager_MP: könntest Du bitte [ code] Tags benutzen?

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten