Скрипт для запуска процессов на переднем плане, но на другой вкладке терминала

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

#!/bin/bash    
    cd A/
    sleep 1
    ./exe1 &
    echo "-------- exe1 STARTED------"

    cd ../../B/
    sleep 1
    ./exe2_a &
    sleep 1
    ./exe2_b &
    echo "--------exe2 STARTED------"

    cd ../C/
    sleep 1
    ./NAV_exe3_a &
    sleep 1 
    ./NAV_exe3_b &
    echo "--------exe3 STARTED------"

Как видите, я запускаю 5 разных процессов в фоновом режиме, но как мне запустить их в 5 разных вкладках терминала (на переднем плане) с помощью одного скрипта? Там в любом случае?


person TPS    schedule 18.03.2013    source источник
comment
Это зависит от того, какой эмулятор терминала вы используете. Оболочка ничего не знает о ваших терминалах; он знает только о среде, предоставленной ему его родительским процессом.   -  person chepner    schedule 18.03.2013
comment
Скрипт новой вкладки Mac Terminal   -  person ma11hew28    schedule 09.11.2013


Ответы (1)


Если у вас есть gnome-terminal, вы можете сделать что-то вроде этого:

gnome-terminal \
  --tab -e "./exe1" \
  --tab -e "./exe2" \
  --tab -e "./exe3"

Обратите внимание, что это запустит все параллельно. Вы можете реализовать временные задержки, используя сон, если вам нужны такие вещи:

gnome-terminal \
  --tab -e "./exe1" \
  --tab -e "sh -c 'sleep 5; ./exe2'" \
  --tab -e "sh -c 'sleep 10; ./exe3'"
person larsks    schedule 18.03.2013
comment
Спасибо! это отлично работает для меня. но --tab -e "sleep 10; ./exe3" не так совершенен. У вас есть другое решение для этого? - person TPS; 18.03.2013
comment
Вы не указали, каким образом это не работает, но посмотрите мое обновление; Думаю, это решит вашу проблему. - person larsks; 18.03.2013
comment
Спасибо Larsks еще раз, Но sh -c тоже не получилось. Но моя задача запуска всех моих процессов на переднем плане работает хорошо, но в разных терминалах (не на вкладках) еще раз спасибо! - person TPS; 19.03.2013