WSL Bash PowerShell Timer-App Erstellen

Eine einfache Timer-App mit WSL Bash und PowerShell erstellen

Dieser Artikel stellt vor, wie man eine einfache Timer-App mit WSL Bash und PowerShell erstellt. Es ist ein Timer, der Sie mit Sprache benachrichtigt. Er zeigt die verstrichene Zeit an, wenn der Timer abläuft.

Vulpes
4 Min. Lesezeit
17. Nov. 2025

Dieser Artikel stellt vor, wie man eine einfache Timer-App mit WSL Bash und PowerShell erstellt.

Es ist ein Timer, der Sie mit Sprache benachrichtigt. Er zeigt die verstrichene Zeit an, wenn der Timer abläuft.

z.B. ttstimer "15m" "cooking" benachrichtigt Sie nach 15 Minuten mit Sprache und sagt cooking timer fired. 15 m passed.

Dieses Programm setzt einen Timer für ein angegebenes Zeitintervall, und wenn der Timer endet, liest es den angegebenen Text mit Sprachsynthese vor. Es benachrichtigt auch über die verstrichene Zeit. Unten füge ich Kommentare zu jeder Zeile hinzu und erkläre dann die Funktionsweise des Programms Schritt für Schritt.

ttstimer(){

# Beginn der Funktion zum Setzen des Timers

: e.g. ttstimer "15m" "cooking"

# Beispiel-Funktionsaufruf: Rufe diese Funktion mit Argumenten wie ttstimer "15m" "cooking" auf

json=
ttstimer_d=
ttstimer_w=

# Initialisiere json-Variable, ttstimer_d-Variable, ttstimer_w-Variable

[ -z "${1}" ] && return 1

# Wenn das erste Argument leer ist, beende Funktion als Fehler

json="$(python3 - $@ <<EOF
# -*- coding: utf-8 -*-

import sys
args = sys.argv

import re
import json

text = """${1}"""
result = re.match(r'(\d+)([a-z]{1})', text, re.M)
print (json.dumps(list(result.groups())))

EOF
)"

# Führe Python-Skript aus und speichere Ergebnis in json-Variable

[ -z "${json}" ] && return 1

# Wenn json-Variable leer ist, beende Funktion als Fehler

ttstimer_d="$( echo $json | parsejson '[0]' )"
ttstimer_w="$( echo $json | parsejson '[1]' )"

# Parse json-Inhalt und speichere in ttstimer_d und ttstimer_w

# sleep ${1} && tts "${2} timer fired. ${ttstimer_d} ${ttstimer_w} passed." && termdown
    sleep ${1} && ( tts "${2} timer fired. ${ttstimer_d} ${ttstimer_w} passed." & termdown )

# Warte für angegebene Zeit, lies angegebenen Text mit Sprachsynthese vor und benachrichtige verstrichene Zeit
# Führe im Hintergrund mit & aus
}

Die Hauptarbeitsschritte dieses Programms sind wie folgt:

  1. Die ttstimer-Funktion startet.

  2. Die Funktion empfängt ein Zeitintervall (z.B. “15m”) und Text (z.B. “cooking”) als Argumente.

  3. Initialisiere die Variablen json, ttstimer_d und ttstimer_w.

  4. Wenn das erste Argument leer ist, beende die Funktion als Fehler.

  5. Ein Python-Skript wird ausgeführt, das angegebene Zeitintervall (z.B. “15m”) wird mit regulären Ausdrücken aufgelöst und das Ergebnis wird im JSON-Format in der json-Variable gespeichert.

  6. Wenn die json-Variable leer ist, beende die Funktion als Fehler.

  7. Der Inhalt der json-Variable wird geparst und in den Variablen ttstimer_d und ttstimer_w gespeichert. Dies sind Werte, die das Zeitintervall in Zahl und Einheit aufteilen.

  8. Schlafe für das angegebene Zeitintervall (z.B. “15m”), dann lies den angegebenen Text (z.B. “cooking”) mit Sprachsynthese vor. Es benachrichtigt auch über die verstrichene Zeit. Diese Verarbeitung wird im Hintergrund ausgeführt.

Es begann als nur 3 Zeilen, aber wuchs, bevor ich es wusste.

Anderer Code

Der Zweck der folgenden Skripte ist, JSON-Daten mit der parsejson-Funktion in .bashrc zu parsen und die geparsten Daten mit Sprachsynthese mittels der tts-Funktion vorzulesen. Die tts-Funktion im PowerShell-Skript wird für denselben Zweck verwendet, führt aber Sprachsynthese innerhalb von PowerShell aus.

// .bashrc

parsejson(){