Seite 1 von 1

Shell Skript per Shortcut starten und User Input einlesen

Verfasst: Dienstag 13. Februar 2018, 19:17
von HendrikS.
Hallo, ich möchte ein Shell Script (Bash/Zsh) per Shortcut starten,
Dieses funktioniert auch solange ich es im Terminal starte:

per:

Code: Alles auswählen

./test.sh bzw. zsh test.sh oder bash test.sh
Sobald ich es mittels Shortcut in Qtile aufrufe, stürzt es ab, oder es bricht ab, bzw gibt nichts aus.

Der Shortcut:

Code: Alles auswählen

Key([Super], "m", lazy.spawn("bash /home/"+USER+"/.user/test.sh")),
und der betreffende Code:

Code: Alles auswählen

echo "Save (y/n)?"
read -r  input < /dev/$_TTY ## bash
#vared -p "Save (y/n)?" input < /dev/$_TTY  ## zsh
echo "$input"
(das echo "Save (y/n)?" wird noch ausgegeben, aber das read bzw. vared nicht mehr)

Das Programm läuft aber z.B mittels:

Code: Alles auswählen

subprocess.run(["zsh", "/home/"+USER+"/.user/test.sh"])
Woran könnte es liegen, oder gibt es noch eine andere Alternative wie ich es zum laufen kriegen könnte?

MFG H.S.

Re: Shell Skript per Shortcut starten und User Input einlesen

Verfasst: Dienstag 13. Februar 2018, 19:41
von Sirius3
@HendrikS.: wenn Du kein Terminal hast, wird höchst wahrscheinlich $_TTY nicht auf was sinnvolles gesetzt sein. Woher kommt das überhaupt? Ersatzlos streichen ist der erste Schritt zur Lösung.

Re: Shell Skript per Shortcut starten und User Input einlesen

Verfasst: Dienstag 13. Februar 2018, 20:10
von HendrikS.
Ah, sorry, hier das komplette script:

Code: Alles auswählen

#!/usr/bin/zsh
set -xv
kate_PID=$(pidof kate)
kate_TTY=$(ps --no-header --ppid $kate_PID | awk "{print \$2}")
echo $kate_TTY > /dev/$kate_TTY

read  -p "Save (y/n)?"  input < /dev/$kate_TTY
#vared -p "Save (y/n)?" input < /dev/$kate_TTY
echo "$input" > /dev/$kate_TTY

set +xv