我正在尝试构建一个bash脚本来启动一个屏幕会话,拆分屏幕然后调整其中一个屏幕。以下是我从终端手动运行的内容。
$screen
$ cd /some/directory
控制 a 然后 Shift S //将屏幕分成两部分
控制 a 标签 //导航到" new"屏
Control c //创建另一个终端
控制 a :调整大小-15 //调整屏幕大小
$cd /another/dictionary
控制 a 标签 //导航到第一个屏幕
$clear
我已经完成了一些bash脚本,但没有任何按键操作。我一直在尝试在bash脚本中找到要发送 control a 的内容但是我不确定我是否可以或者在我启动屏幕之后是否我可以这样与屏幕互动。我还没能在谷歌搜索中找到任何东西。非常感谢任何帮助或指导。
答案 0 :(得分:1)
我知道这已经老了,但我也需要这个,但找不到答案。我终于解决了这个问题:
制作配置文件,例如 .splitscreenrc :
chdir /etc
screen 0
stuff "ls -1\n"
split
focus down
resize 3
chdir /tmp
screen 1
stuff "ls\n"
focus up
运行screen -c .splitscreenrc
希望这有助于某人;)
答案 1 :(得分:0)
使用expect
:
#!/usr/bin/expect -f
set prompt {\$ } ;# this is a regular expression to match your shell prompt
set dir1 /tmp
set dir2 /var/log
spawn screen
expect -re $prompt
send -- "\001S"
expect -re $prompt
send -- "cd $dir1\r"
expect -re $prompt
send -- "\001\t"
send -- "\001c"
expect -re $prompt
send -- "\001:resize -15\r"
send -- "cd $dir2\r"
expect -re $prompt
send -- "\001\t"
send -- "clear\r"
interact