Экран гну: Запустите скрипт, который отправляет команды в экранную сессию, в которой он выполняется

с java8 вы можете использовать форматтер:

import java.time.format.DateTimeFormatter
import java.time.LocalDate

println("withQuarter: " + LocalDate.of("2016".toInt,"07".toInt,1).format(DateTimeFormatter.ofPattern("yyyyQMM")))

с кварталом: 2016 3 07

8
задан Drew Stephens 2 November 2010 в 22:04
поделиться

5 ответов

Я думаю, что это работает:

if [-n "$STY"]; then
    screen -X title "foo"
    screen -X monitor on
fi
7
ответ дан 5 December 2019 в 08:25
поделиться

Из экранной страницы руководства:

  -X Отправить указанную команду в текущий сеанс экрана. Ты можешь
 используйте параметр -d или -r, чтобы указать экрану искать только прикрепленные
или отдельные сеансы экрана. Обратите внимание, что эта команда не работает
 если сеанс защищен паролем.

Обычно запускают

screen -X title mynewtitle
screen -X monitor on

. Если терминал не работает на экране, он автоматически выдает ошибку:

notinscreen:~$ screen -X title mynewtitle
notinscreen:~$

Вы также можете отправить команду в конкретный сеанс, даже если он отключен. Для данного сеанса экрана с именем "main":

$ screen -S main
[detach from screen session]
$ screen -ls
There is a screen on:
        2073.main       (Detached)
1 Socket in /tmp/uscreens/S-dbr.

.. вы можете отправить заголовок последнего активного окна на blah :

$ screen -x main -X title blah

.. или в конкретное окно (с именем oldwindow в этом примере):

$ screen -x main -p oldwindow -X title blah

Вместо использования -x main вы можете использовать идентификатор процесса (из screen -ls ), а также вместо использования имени окна ( -p oldwindow ) вы можете использовать номер окна:

$ screen -x 2073 -p 0 -X title h

Если существует только один сеанс, вам не нужно указывать PID или имя сеанса.

10
ответ дан 5 December 2019 в 08:25
поделиться

Экран объявляет переменную среды $ STY , вы можете попробовать ее использовать.

2
ответ дан 5 December 2019 в 08:25
поделиться

Экран работает прозрачно, поэтому определить сеанс экрана сложно. Если вы попытаетесь посылать нажатия клавиш, это сработает и приведет к заполнению вашего терминала крошечным мусором, если вы не находитесь в сеансе.

0
ответ дан 5 December 2019 в 08:25
поделиться

Хотите отображать информацию или взаимодействовать с самим сеансом экрана? Вы можете отправлять сообщения с помощью этого: ( http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html#lbAI )

СТРОКА СООБЩЕНИЯ Экран отображает информационные сообщения и другие диагностика в строке сообщения. Пока эта линия распространяется, чтобы появиться в внизу экрана, это может быть определено, чтобы появиться в верхней части экран во время компиляции. Если ваш терминал имеет строку состояния, определенную в его termcap, экран будет использовать это для отображение своих сообщений, в противном случае строка текущего экрана будет временно перезаписывается и выводится будет на мгновение прервано. В строка сообщения автоматически удаляется после задержки в несколько секунд, но может также должны быть удалены раньше (на терминалах без строки состояния), начиная с тип.

Можно использовать линию сообщений. приложением, запущенным в текущее окно с помощью ANSI Последовательность управления сообщением конфиденциальности. Для например, из оболочки попробуйте что-то вроде:

 echo ' ^ Hello world from window' $ WINDOW ' \\' 

где "" - это побег, "^" - это буквальная стрелка вверх, а '\' превращается в одиночная обратная косая черта.

1
ответ дан 5 December 2019 в 08:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: