Еще одна вещь, которую вы можете использовать, - это xdotool:
xdotool getwindowfocus
вернет идентификатор окна сфокусированного окна и:
xdotool getwindowfocus getwindowname
сообщит вам свое имя.
Я получаю две строки, которые помогут вам разобраться, что происходит:
./test: line 48: warning: here-document at line 21 delimited by end-of-file (wanted `EOF')
./test: line 49: syntax error: unexpected end of file
Неправильно сформирована ваша конструкция heredoc (<< EOF). Это непрозрачное пространство, поэтому вы либо отмените его:
...
command <<EOF
...
EOF
Или сообщите, что вы его табулируете (и это должна быть вкладка):
...
command <<-EOF
...
EOF
Предпочитаю второй, потому что он позволяет структурировать скрипт намного лучше ... Что-то, что ваш скрипт мог уже извлечь из этого.
Если вы используете vim или vi, попытайтесь использовать команду
:set list
Вы сможете видеть пробелы между символом $
Иногда это пригодится чтобы выяснить какое-то неожиданное поведение. В этом случае удаление пробелов завершено.