Как использовать Bash, чтобы открыть несколько экранов и позволить им работать независимо - PullRequest
0 голосов
/ 28 апреля 2019

Screen поддерживает только ctrl + a + d для временного отправления, я пытаюсь использовать ожидаемую посылку "/ 01d", но ответа нет, нет ответа на выполнение только сценария ожидаемого на экране, есть ли лучший способзавершить выполнение на экране и создать следующий экран?

У меня было много сценариев, которые нужно отслеживать, и, возможно, мне потребуется отслеживать их в режиме реального времени, поэтому я выбрал экран для управления ими, и теперь я хочу написать сценарий, которыйбыстро перебирает и запускает все скрипты в каталоге.

Я выполняю change.sh прямо на экране

change.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

1 Ответ

0 голосов
/ 29 апреля 2019

использовать это можно решить без экс

screen -dmS $NAME
...