Сохраните несколько терминал как переменные

Я должен открыть несколько xterm окон и сохранить их позже для выполнения различных команд в каждом из них при поддержании их.
Пример (не корректный вообще) был бы:

term1= xterm -hold -title "term1"
term2= xterm -hold -title "term2"
term3= xterm -hold -title "term3"

Вычислите те же команды для всех них:

for i in term1 term2 term3
do 
  $i -e "cd somewhere; source something"
done

затем выполните различные команды для некоторых из них:

$term1 -e "cd somewhere else; ./..."
$term2 -e "do other thing"

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

Править: добавьте пример в ответ на @dessert

Отказ от ответственности: Я в настоящее время работаю в окружающей среде ROS.

Сценарий должен открыть четыре терминала (любой xterm, разделитель, терминал по умолчанию) окна; три из них должны получить сценарий удара в той же папке и затем roscd к другому этого, два из них должны выполнить различные команды (нужно запустить launch_file, в то время как tho другой должен запустить скрипт). Четвертый должен CD к другой папке, где он должен получить .bash и затем запустить другой launch_file. Было бы еще лучше, если четвертый может ожидать x секунды перед запуском.

0
задан 8 November 2017 в 07:45

1 ответ

Используйте функции! Преимущество этого метода состоит в том, что можно добавить другие дополнительные позиционные параметры к вызову функции при выполнении его.

term1(){
    xterm -hold -title "term1" "$@"
}

Поместите это в Ваш ~/.bashrc файл и выполненный source ~/.bashrc. Та же идея для других команд.

Для поддержания терминала необходимо породить оболочку в конце, т.е. сделать

term1 -e "cd place1; command 2;bash"

Сам терминал является просто окном, и он не имеет оболочки одной для Вас для взаимодействия с, поэтому если Вы не породите один - Вы не получите интерактивную оболочку.

1
ответ дан 2 November 2019 в 00:32

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

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