如何使用bash打开多个屏幕并让它们独立运行

问题描述 投票:-1回答:1

屏幕只支持ctrl + a + d用于临时离开,我尝试使用expect的发送“/ 01d”但是没有响应,没有响应在屏幕上单独执行expect脚本,是否有更好的方法来完成执行屏幕并创建下一个屏幕?

我有很多要监视的脚本,可能需要实时监视,所以我选择了屏幕来管理它们,现在我想写一个快速遍历并运行目录中所有脚本的脚本。

我直接在屏幕上执行changed.sh

嫦娥.是

#!/usr/bin/expect
send "\01d"

根据其他人的回答,屏幕应该已经生成了Detached事件。

完整的脚本

#!/usr/bin/env bash
#cd /home/centos/Recorder/config
#ls|grep .txt|sed 's/.txt//g'
for ((NUM=$(ls /home/centos/Recorder/config|grep -c .txt); NUM>0; --NUM)) 
do
NAME=$(ls /home/centos/Recorder/config|grep .txt|sed 's/.txt//g'|sed -n "$NUM"p)
sleep 3
screen -S $NAME /home/centos/Recorder/index.sh $NAME
sleep 3
/usr/bin/expect <<EOF 
send "\01"
send "d" 
expect eof
EOF
done

linux bash expect gnu-screen
1个回答
0
投票

使用这个可以解决没有前

screen -dmS $NAME
© www.soinside.com 2019 - 2024. All rights reserved.