Как выяснилось, ядро Linux начинает двигаться в сторону Wayland, а не X11, начиная с 17.10. Из-за этого qemu
больше не будет работать.
echo bye
выполняется, но вы не видите его. Попробуйте добавить sleep 0.5
в цикл while, и вы это увидите.
Цикл while не остановлен, потому что ваш trap
использовал сочетание клавиш Ctrl/C. Вам нужно добавить команду exit
к вашему trap
, если вы хотите, чтобы код вышел из:
#!/bin/bash
#
gotcha()
{
echo "Bye"
exit 1
}
trap gotcha SIGINT
while :
do
echo "Hello"
sleep 0.5
done
Одна действительно важная вещь, которую нужно понять о функции trap
, заключается в том, что она не сработает, пока не завершится выполнение текущей команды (, какой бы она ни была )в сценарии. Таким образом, вы не обязательно можете использовать его для прерывания длительно выполняющейся команды -.