これは私が達成したいことです:
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-terminal --geometry=260x25-0+0 --tab -e "bash -c 'date; read -n1'" --tab -e "bash -c 'echo meow; read -n1' " --tab --tab
-eによって実行されたプロセスが実行を完了するとすぐに、それらは終了することに注意してください。この場合、bashがロードされ、渡されたコマンドを実行し、すぐに存在します。ユーザー入力を待つために、readステートメントを入れました。このようにして、これらのタブはキーを押すまで閉じないので、この例ではそれを見ることができます。それらがなければ、2つのタブのみが開いているように見えます。他の2つのタブは実行されてすぐに閉じるためです。
コマンドが完了すると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'"
以下を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で新しいタブを開く を参照してください。