Portál AbcLinuxu, 18. listopadu 2025 17:25
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.