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



屏幕仅支持ctrl + a + d临时离开,我尝试使用期望的发送"/01d"但没有响应,没有响应在屏幕中单独执行期望脚本,有没有更好的方法在屏幕中完成执行并创建下一个屏幕?

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

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

change.sh

#!/usr/bin/expect
send "1d"

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

完整脚本

#!/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 "1"
send "d" 
expect eof
EOF
done

使用这个可以解决没有ex的问题

screen -dmS $NAME

相关内容

  • 没有找到相关文章

最新更新