-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhiit.sh
111 lines (85 loc) · 2.7 KB
/
hiit.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/bash
# Dateipfade für die WAV-Dateien
PFAD="/home/martin/bin/HIIT"
PREP_BEEP="$PFAD/prep_beep.wav"
STOP_BEEP="$PFAD/stop_beep.wav"
INTERVAL_BEEP="$PFAD/interval_beep.wav"
# Datei, in die der Zeitstempel geschrieben wird
logfile="$PFAD/history.log"
# Funktion zum Abspielen der WAV-Dateien
function play_beep() {
# Get the current volume
current_volume=$(amixer get Master | grep -oP '\d+(?=%)' | head -n 1)
# Set volume to 35%
amixer set Master 35% &>/dev/null
# Play the audio file
aplay "$1" &>/dev/null
# Restore the original volume
amixer set Master "${current_volume}%" &>/dev/null
}
# Funktion für die Countdown-Anzeige
function countdown() {
for ((i = "$1"; i > 0; i--)); do
printf "\rNoch %02d Sekunden" "$i"
sleep 1
done
printf "\r \r"
}
# Auswahl des Intervalls
clear
echo "Wählen Sie einen Intervall:"
echo "1) 40s Übung, 20s Pause"
echo "2) 45s Übung, 15s Pause"
echo "3) 50s Übung, 10s Pause"
echo "4) 60s Übung, 0s Pause"
read -rp "Ihre Auswahl (1-4): " choice
# Datum und Uhrzeit im gewünschten Format angeben und in die Datei schreiben
echo "$(date '+%Y-%m-%d %H:%M:%S') - Training ausgeführt" >> "$logfile"
echo "In 10 Sekunden geht's los!"
sleep 10
clear
# Festlegen der Zeiten basierend auf der Auswahl
case "$choice" in
1) work_time=40; rest_time=18 ;;
2) work_time=45; rest_time=13 ;;
3) work_time=50; rest_time=8 ;;
4) work_time=60; rest_time=0 ;;
*) echo "Ungültige Auswahl"; exit 1 ;;
esac
# Start-Beeps zur Vorbereitung
play_beep "$PREP_BEEP"
echo "Los geht's!"
# Timer-Schleife für insgesamt 9 Minuten
end_time=$((9 * 60))
elapsed=0
counter=0
while (( elapsed < end_time )); do
((counter++))
# Vorbereitungs-Beep und Countdown für die Aktivitätseinheit
echo "Runde $counter: Übungszeit: $work_time Sekunden"
countdown "$work_time"
elapsed=$((elapsed + work_time))
# Abspielen des Beeps für die Pause oder das Intervall
if (( counter % 3 == 0 )); then
play_beep "$INTERVAL_BEEP"
else
play_beep "$STOP_BEEP"
fi
if (( counter == 9 )); then
play_beep "$INTERVAL_BEEP"
break
fi
# Überprüfen, ob die Zeit abgelaufen ist
if (( elapsed >= end_time )); then break; fi
# Pause nur einfügen, wenn eine Pausezeit gesetzt ist
if (( rest_time > 0 )); then
echo "Pause: $rest_time Sekunden"
countdown "$rest_time"
elapsed=$((elapsed + rest_time))
# Vorbereitungs-Beep für die nächste Aktivitätseinheit (wenn nicht die letzte Einheit)
if (( elapsed < end_time )); then
play_beep "$PREP_BEEP"
fi
fi
done
echo "Training komplett beendet!"