Відповіді:
Коли ви запускаєте сеанс екрана у відірваному режимі ( screen -d -m
), не вибирається вікно, тому вхід, надісланий пізніше screen -X stuff
, просто втрачається. Вам потрібно чітко вказати, що ви хочете надіслати натискання клавіш у вікно 0 ( -p 0
). У будь-якому випадку це гарна ідея, якщо ви хочете створити інші вікна під час сеансу екрана з будь-якої причини.
screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"
( printf \\r
щоб строго імітувати Returnключ; багато, але не всі програми приймають новий рядок ( \n
).)
Це нещодавно з’явилося під час спроби відповісти на запитання на unix.stackexchange.com .
Підсумок полягає в тому, що на екрані немає вибраного за замовчуванням вікна, якщо ви не вкладете файл, але Гілл показав нам, як можна змусити його бути вибраним , додавши аргумент -p 0
у вашу команду екрана.
Особисто рекомендую перейти на tmux
. Ось як ви перенесите команди екрана для роботи в tmux:
tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"