屏幕仅支持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