이것이 내가 달성하고자하는 것입니다.
- 5 개의 탭이있는 그놈 터미널을 열고 싶습니다
- 각 탭에서 일련의 명령 (5 – 10 명령)을 자동으로 실행하고 싶습니다.
첫 번째 탭 : 대 / 소문자보기를 설정 한 후 하나 이상의 명령을 실행합니다.
두 번째 탭 : 서버에 로그인하고 일부 명령을 실행합니다.
세 번째 탭 : 일부 명령 만 실행합니다
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 문을 넣었습니다. 이렇게하면 키를 누를 때까지 해당 탭이 닫히지 않으므로이 예에서 볼 수 있습니다. 그것들이 없으면 다른 탭은 너무 빨리 실행되고 닫히기 때문에 두 개의 탭만 열린 것처럼 보입니다.
답변
명령이 완료된 후 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
script.sh를 $ PATH에 추가하고 실행하십시오.
gnome-terminal -x script.sh
명령 행을 사용하여 그놈 터미널에서 새 탭 열기를 참조하십시오 .