Portál AbcLinuxu, 11. května 2025 06:40
trap exit ESCDěkuji za vaši pomoc.
Asi by slo napsat wrapper, ktery by cetl z /dev/tty nebo stdin a vse predaval scriptu, ktery chceme prerusit. Kdyby narazil na ridici znak, tak by zabil vsechny potomky.
Mate ale pravdu, ze to neni "co dat na zacatek scriptu"
marekNespecifikoval jsi podrobnosti ohledně toho co bude skript dělat, tak mrkni na obecnou ukázku níže.
script.sh
#!/bin/bash script_quit() { echo "# SIGTERM => Exiting script..." } trap 'script_quit; exit 0' TERM while [ true ]; do echo "# Running script..." sleep 1 done echo "# Exiting script..."
wrapper.sh
#!/bin/bash ./script.sh & SCRIPT_PID=$! echo "* SCRIPT_PID=${SCRIPT_PID}" while [ true ]; do read -sn 1 KEY case "$KEY" in $'\e' ) echo "* Escape key" kill $SCRIPT_PID echo "* Waiting on script.sh exit" wait $SCRIPT_PID break ;; * ) echo "* Other key" ;; esac done echo "* Exiting wrapper..."
$ ./wrapper.sh * SCRIPT_PID=22959 # Running script... # Running script... * Other key # Running script... # Running script... * Escape key * Waiting on script.sh exit # SIGTERM => Exiting script... * Exiting wrapper...
BASH escape character trauma
Question about bash read function and matching ESC
stty intr ^[
Ale budou tam jisté side-efekty, nebudou fungovat šipky, atd... :)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.