linux - 如何使用bash打开多个 screen 并让它们独立运行

标签 linux bash expect gnu-screen

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/

相关文章:

linux - 运行期望代码时发送错误

linux - 来自期望文件中的文本文件的源不起作用

Linux shell脚本: Renaming files according to directory name

linux - 使用 foreach 和 awk 命令将 csh 脚本转换为 bash 脚本

linux - 将脚本/程序转换为可安装的压缩包?

linux - 无法使用 SSH 访问远程计算机

linux - 在 fstab Ubuntu 中挂载时出错

没有交互指令的 Linux 期望命令不起作用

linux - Perl 加密 STDIN 密码

php - CentOS 6、PHP和APC上的段错误(十一)