Screen只支持ctrl+a+d临时离开,我尝试使用expect的send“/01d”但是没有反应,在screen中单独执行expect脚本没有反应,有没有更好的方法在screen中完成执行并创建下一个screen?
我有很多脚本要监控,可能需要实时监控,所以选择了screen来管理,现在想写一个脚本,快速遍历并运行目录下的所有脚本。
我直接在 screen 中执行changed.sh
更改.sh
#!/usr/bin/expect
send "\01d"
根据其他人的回答,screen应该生成了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
最佳答案
用这个可以解决,无需ex
screen -dmS $NAME
关于linux - 如何使用bash打开多个 screen 并让它们独立运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55888961/