
В моем файле .screenrc есть эта строка для открытия одного окна экрана:
screen -t "normal"
И эта строка, чтобы открыть еще одно окно и запустить top:
screen -t "top" top
Они работают отлично, поэтому я захотел немедленно запустить приложение df && ls -alh
в третьем окне, поэтому я поместил эту строку в .screenrc:
screen -t "df" df && ls -alh
Окно df так и не появилось, поэтому я подумал, что && может быть причиной проблемы, и попробовал сделать это только с df.
screen -t "df" df
Окно df по-прежнему не появляется.
Вопрос: Как мне запустить одну команду, а затем другую в одном и том же окне экрана через screenrc? Я бы хотел, чтобы это действовало точно так же, как в bash. Спасибо за любой совет.
решение1
Вероятно, он появляется, но исчезает после запуска.
Попробуйте следующее:
screen -t "df" bash -c 'df && sleep 50'
Это покажет вывод команды df
за 50
несколько секунд.
Чтобы получить полезный df
вывод, я бы рекомендовал вам использовать watch
:
screen -t "df" watch -n 10 df
Это будет запускаться df
каждые 10 секунд, поэтому вы будете знать фактическое состояние свободного места на диске на этом терминале.
решение2
Старый вопрос, но он появился в результатах поиска раньше, чем ответ, который я нашел самым понятнымздесь.
Вот несколько решений, которые мне помогли:
screen -t Files zsh -c 'ls -lahG; exec zsh'
В моем файле .screenrc команда «exec zsh» открывает еще одну командную строку в окне внутри области после завершения команды/процесса «ls» (аналогично поведению ручного ввода команды в оболочке в окне GNU screen; я предполагаю, что это более эффективно, чем запуск команды «sleep», но буду признателен, если вы поправите меня, если я ошибаюсь.
screen -t Files zsh -c 'vim .'
Вышеизложенное работает для конкретного случая использования «ls».