屏幕只支持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
使用这个可以解决没有前
screen -dmS $NAME