Я написал скрипт, который открывает новый терминал (gnome) и несколько вкладок (
40 более или менее), который должен работать бесконечно. Может произойти сбой, и это происходит, и я хотел бы легко повторно ввести введенную команду из той же вкладки.
Это выглядит так:
script='gnome-terminal'
tab='--tab-with-profile=scan'
for (( i = 0; i < len; i+=2 ));
do
script+=" $tab --title=\"${you[i]}\" -e \"bash -c 'node scan ${you[i+1]}; bash;'\""
done
eval "$script" $>/dev/null \
&& kill -9 $PPID \
|| errorProfile
Я установил в профиле опцию «держать открытым при остановке», но я не могу получить свою команду, так как она не выдвигается в истории. Очень минимальное воспроизведение для этого выглядит так:
gnome-terminal -e 'bash -c "ls; bash"'
Я пробовал несколько вещей, от
gnome-terminal -e 'bash -c "history -s ls; bash"'
до
gnome-terminal -e 'bash -c ". ~/bashrc; ls; bash"'
Но ничего не работает, и моя история не заполнена -c
arg.
Насколько я понимаю, выполнение bash
внутри терминала создает сеанс, который не связан с родительским терминалом, и, поскольку мне нужно использовать его для запуска команды в моем только что созданном терминале, может быть, это неразрешимая проблема?
Дополнительно:
- Можем ли мы восстановить контроль над терминалом, когда опция профиля «держать открытым при завершении процесса»?
- Можно ли не использовать опцию профиля для управления этим, а вместо этого ловить сигнал, чтобы сделать то, что я хочу?