Bash : Hold gnome-terminal open, get history and regain control after exit
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I wrote a script which open a new terminal ( gnome ) and a bunch of tabs (
40 more or less ), which is supposed to run infinitly. It could crash, and it does, and I would like to easily rerun the injected command from the same tab.
It look like this :
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
I have set on the profile the option "hold open on stop", but I can't retrieve my command as it is not pushed in history. The very minimal repro for this look like this :
gnome-terminal -e 'bash -c "ls; bash"'
I have tried a few stuff, from
gnome-terminal -e 'bash -c "history -s ls; bash"'
to
gnome-terminal -e 'bash -c ". ~/bashrc; ls; bash"'
But nothing work, and my history is not filled with the -c
arg.
My understanding is that running bash
inside a terminal create a session which is not related to the parent terminal, and as I need to use it to run command in my freshly created terminal, maybe this is an unsolvable problem ?
In addition:
- Can we regain control on a terminal when the profile option "hold open when process finish" ?
- Is it possible to not use the profile option to manage this, but instead trap signal to do what I want ?
linux bash tabs gnome-terminal
add a comment |
I wrote a script which open a new terminal ( gnome ) and a bunch of tabs (
40 more or less ), which is supposed to run infinitly. It could crash, and it does, and I would like to easily rerun the injected command from the same tab.
It look like this :
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
I have set on the profile the option "hold open on stop", but I can't retrieve my command as it is not pushed in history. The very minimal repro for this look like this :
gnome-terminal -e 'bash -c "ls; bash"'
I have tried a few stuff, from
gnome-terminal -e 'bash -c "history -s ls; bash"'
to
gnome-terminal -e 'bash -c ". ~/bashrc; ls; bash"'
But nothing work, and my history is not filled with the -c
arg.
My understanding is that running bash
inside a terminal create a session which is not related to the parent terminal, and as I need to use it to run command in my freshly created terminal, maybe this is an unsolvable problem ?
In addition:
- Can we regain control on a terminal when the profile option "hold open when process finish" ?
- Is it possible to not use the profile option to manage this, but instead trap signal to do what I want ?
linux bash tabs gnome-terminal
You probably notice the && kill -9 $PPID . I use it because my gnome-terminal is not opening a new window to launch all my tabs, but instead launch tabs next to him, even with the new-terminal-mode : window in dconf-editor activated. This happen after an upgrade from Ubuntu 16 to 18. Is it an expected behaviour ?
– Louisb
Nov 15 '18 at 10:10
add a comment |
I wrote a script which open a new terminal ( gnome ) and a bunch of tabs (
40 more or less ), which is supposed to run infinitly. It could crash, and it does, and I would like to easily rerun the injected command from the same tab.
It look like this :
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
I have set on the profile the option "hold open on stop", but I can't retrieve my command as it is not pushed in history. The very minimal repro for this look like this :
gnome-terminal -e 'bash -c "ls; bash"'
I have tried a few stuff, from
gnome-terminal -e 'bash -c "history -s ls; bash"'
to
gnome-terminal -e 'bash -c ". ~/bashrc; ls; bash"'
But nothing work, and my history is not filled with the -c
arg.
My understanding is that running bash
inside a terminal create a session which is not related to the parent terminal, and as I need to use it to run command in my freshly created terminal, maybe this is an unsolvable problem ?
In addition:
- Can we regain control on a terminal when the profile option "hold open when process finish" ?
- Is it possible to not use the profile option to manage this, but instead trap signal to do what I want ?
linux bash tabs gnome-terminal
I wrote a script which open a new terminal ( gnome ) and a bunch of tabs (
40 more or less ), which is supposed to run infinitly. It could crash, and it does, and I would like to easily rerun the injected command from the same tab.
It look like this :
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
I have set on the profile the option "hold open on stop", but I can't retrieve my command as it is not pushed in history. The very minimal repro for this look like this :
gnome-terminal -e 'bash -c "ls; bash"'
I have tried a few stuff, from
gnome-terminal -e 'bash -c "history -s ls; bash"'
to
gnome-terminal -e 'bash -c ". ~/bashrc; ls; bash"'
But nothing work, and my history is not filled with the -c
arg.
My understanding is that running bash
inside a terminal create a session which is not related to the parent terminal, and as I need to use it to run command in my freshly created terminal, maybe this is an unsolvable problem ?
In addition:
- Can we regain control on a terminal when the profile option "hold open when process finish" ?
- Is it possible to not use the profile option to manage this, but instead trap signal to do what I want ?
linux bash tabs gnome-terminal
linux bash tabs gnome-terminal
asked Nov 15 '18 at 10:09
LouisbLouisb
35018
35018
You probably notice the && kill -9 $PPID . I use it because my gnome-terminal is not opening a new window to launch all my tabs, but instead launch tabs next to him, even with the new-terminal-mode : window in dconf-editor activated. This happen after an upgrade from Ubuntu 16 to 18. Is it an expected behaviour ?
– Louisb
Nov 15 '18 at 10:10
add a comment |
You probably notice the && kill -9 $PPID . I use it because my gnome-terminal is not opening a new window to launch all my tabs, but instead launch tabs next to him, even with the new-terminal-mode : window in dconf-editor activated. This happen after an upgrade from Ubuntu 16 to 18. Is it an expected behaviour ?
– Louisb
Nov 15 '18 at 10:10
You probably notice the && kill -9 $PPID . I use it because my gnome-terminal is not opening a new window to launch all my tabs, but instead launch tabs next to him, even with the new-terminal-mode : window in dconf-editor activated. This happen after an upgrade from Ubuntu 16 to 18. Is it an expected behaviour ?
– Louisb
Nov 15 '18 at 10:10
You probably notice the && kill -9 $PPID . I use it because my gnome-terminal is not opening a new window to launch all my tabs, but instead launch tabs next to him, even with the new-terminal-mode : window in dconf-editor activated. This happen after an upgrade from Ubuntu 16 to 18. Is it an expected behaviour ?
– Louisb
Nov 15 '18 at 10:10
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53316993%2fbash-hold-gnome-terminal-open-get-history-and-regain-control-after-exit%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53316993%2fbash-hold-gnome-terminal-open-get-history-and-regain-control-after-exit%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You probably notice the && kill -9 $PPID . I use it because my gnome-terminal is not opening a new window to launch all my tabs, but instead launch tabs next to him, even with the new-terminal-mode : window in dconf-editor activated. This happen after an upgrade from Ubuntu 16 to 18. Is it an expected behaviour ?
– Louisb
Nov 15 '18 at 10:10