Запустить набор кодов из одного файла bash.

Я работаю над ОС Ubuntu, я хочу создать единственный файл bash , который правильно запускает этот код, как показано на скриншоты.

Обратите внимание:

  • Я хочу запустить два терминала в одном окне терминала, и второй набор кодов во втором терминале должен быть запущен через 5 секунд после первого набора кодов в первом терминале.

  • Мне нужен первый набор кодов для продолжения работы (не останавливаться при запуске второго терминала). *

Код:

cd catkin_ws
roscore
sleep 5
source devel/setup.bash
roslaunch hector _slam_launch tutorial.launch

Снимки экрана:

Terminal 1 Terminal 2

1
задан 14 April 2021 в 15:27

2 ответа

Командой gnome Terminal --tab можно создать вкладку терминала. Поместите команды в файл и перейдите к bash в качестве параметра --initfile:

cd catkin_ws
tmpfile=$(mktemp /tmp/roslaunch-script.XXXXXX)
cat >$tmpfile <<EOF
sleep 5
source "$HOME"/.bashrc
source devel/setup.bash
roslaunch hector _slam_launch tutorial.launch
EOF
gnome-terminal --tab -- bash --init-file $tmpfile
roscore
rm $tmpfile
0
ответ дан 23 April 2021 в 23:27

Раньше это работало, а пока еще будет работать со следующим кодом:

gnome-terminal --tab -e "sh -c 'cd catkin_ws ; roscore'" \
               --tab -e "sh -c 'sleep 5; source devel/setup.bash ; roslaunch hector _slam_launch tutorial.launch'"

Issue заключается в том, что разработчики Gnome рассматривают возможность отказаться от опции -e ("выполнить") в пользу прекращения действия опции с помощью --, после чего будет подана команда. Однако, они забыли, что это изменение делает возможным подачу только одной команды. Больше нет возможности автоматически открывать Gnome Terminal с несколькими вкладками, содержащими различные процессы, например, каждая из которых содержит свой сеанс ssh.

1
ответ дан 23 April 2021 в 23:27

Другие вопросы по тегам:

Похожие вопросы: