複数のタブでgnomeターミナルを開き、すべてのタブでいくつかのコマンドを実行します


12

これは私が達成したいことです:

  1. 5つのタブがあるgnomeターミナルを開きたい
  2. 各タブで一連のコマンド(5〜10コマンド)を自動的に実行したい
    最初のタブ:クリアケースビューを設定し、その後1つ以上のコマンドを実行します
    2番目のタブ:サーバーにログインしていくつかのコマンドを実行します
    3番目のタブ:一部のコマンドのみを実行します

gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab (正常に動作し、ビューは設定されていますが、その後コマンドは実行されません)

私は代わりにこのようにして、以下のスクリプトでこれを実行しようとしました:

gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript

#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact 

exec gnome-terminal --geometry 125x49-0+81 –tab例から行を削除し、他のファイルからスクリプトを呼び出すと、正常に機能します。サーバーにログインし、すべてのコマンドを実行します。誰かがこれを解決するのを手伝ってくれる?

私がすべてのタブに対して呼び出すスクリプトを書くことはオプションではありません、なぜなら私は最後にそれぞれに5-7のタブがある5つのターミナルを持っているでしょう、そしてそれはそれが書くのに25から30のスクリプトになることを意味します私の問題)。


私はGNOMEターミナルの専門家ではありませんが、作成したタブはプロファイルに保存する必要があります。プロファイルを作成したら、スクリプトを作成できると思います。GNOMEヘルプの「プロファイルの管理」を参照してください。
eyoung100 2014

回答:


11

これは私のマシンで動作するようです:

gnome-terminal --geometry=260x25-0+0 --tab -e "bash -c 'date; read -n1'" --tab -e "bash -c 'echo meow; read -n1' " --tab --tab

-eによって実行されたプロセスが実行を完了するとすぐに、それらは終了することに注意してください。この場合、bashが読み込まれ、bashに渡すコマンドはすべて実行され、すぐに存在します。ユーザー入力を待つために、readステートメントを入れました。このようにして、これらのタブはキーを押すまで閉じないので、この例ではそれを見ることができます。それらがなければ、2つのタブのみが開いているように見えます。他の2つは実行されてすぐに閉じるためです。


ご回答有難うございます。確かに、1つのコマンドの出力(この場合は「日付」)を取得できますが、複数のコマンドを実行して、出力を取得してから、同じタブで新しいコマンドを手動で書き続けることができます。
ekido 2014年

3

コマンドが完了するとbashが終了bashするため、コマンドの後に別のインスタンスを呼び出して、インタラクティブシェルを取得できます。

gnome-terminal  --tab -e "bash -c 'ps -ef; bash'" --tab -e "bash -c 'ls; bash'" --tab -e "bash -c 'top -n 1; bash'"

ターミナルを閉じると、基になるプロセスが自動的に閉じないようですが、これに対する解決策もありますか?ウィンドウ全体を閉じると、プロセスを含むすべてのタブが終了します
Blub

1

以下をscript.shとして保存します

#!/usr/bin/env bash

me=$(realpath $0)

commands=(
"echo"
"ls -l && echo 'yes'"
"top"
"ps"
)
len=${#commands[@]}

if [ $# -eq 0 ];then
    num=$len
else
    num=$1
fi

n=$((len-num))
command=${commands[$n]}
num=$((num-1))

xdotool key ctrl+shift+t

if [ $num -gt -1 ]; then
    sleep 1; xdotool type --delay 1 --clearmodifiers "$me $num; ${command}"; xdotool key Return;
fi

$ PATHにscript.shを追加して実行します

gnome-terminal -x script.sh

コマンドラインを使用してgnome-terminalで新しいタブ開くを参照してください。


他のすべては、これから離れて失敗しました。ここで、いくつかのタブをコマンドなしで開きたいと思います。例えば、私は彼らがホテルトップ..のようないくつかのコマンドを実行することができれば10のタブが開くが、3つ持っていると思います
nyxee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.