Как выполнять команды, последовательно эмулируя пользователя на терминале с помощью сценария оболочки

Я хотел бы сделать следующее:

  1. Откройте терминал.
  2. Перейдите в каталог, в котором находится целевой скрипт.
  3. Откройте текстовый файл, который предоставляет вход для целевого скрипта. Удерживайте / подождите, пока пользователь сохранит и не закрывает текстовый файл.
  4. Выполните целевой скрипт.

Я написал следующий сценарий, чтобы сделать следующее:

#!/bin/bash echo "hello" gnome-terminal -x bash -c "cd ~/Scripts;pwd;gedit input.txt;python test.py;exec $SHELL" echo "good bye" 

Вышеприведенный дает мне следующий результат:

 user4@user-pc-4:~/Desktop$ ./DAT_run.sh hello good bye 

На открывшемся новом гном-терминале я вижу следующее сообщение:

 /home/user4/Scripts From python script From python script From python script From python script From python script 

Вышеупомянутое означает, что он выполнил код python, и мои требования 1,2 и 4 были выполнены (а не 3-го). Я не могу держать окно gedit до тех пор, пока оно не будет сохранено и закрыто.

Мне интересно: почему команда gedit рассматривается как фоновый процесс, когда я не указал ничего подобного, написав & в конце заявления? Как я могу убедиться, что мой gedit работает как процесс переднего плана и требует от пользователя взять под свой контроль?

Что здесь может быть не так? Я новичок в сценариях оболочки и чувствую, что я вполне мог пропустить что-то здесь. Как я могу достичь всех моих требований?

Linux и Unix - лучшая ОС в мире.