Я делаю так: у меня есть общий файл screenrc и я включаю его из пользовательских файлов сессии. Например, у меня есть ~/.config/screen/gnus.screenrc
, содержащий
sessionname gnus
source common.screenrc
chdir /
screen -t gnus emacs -nw -f gnus
И я запускаю scr gnus
, чтобы открыть эту сессию, где scr
- это сценарий, который организует либо присоединение к запущенной сессии, либо открытие новой сессии с указанным именем, и использует имя сессии для построения пути к файлу конфигурации.
#!/bin/sh
session_name=$1
rc_file=~/.config/screen/$session_name.screenrc
exec screen -c "$rc_file" -S "$session_name" -r -R -d "$@"
Да, это возможно, даже не отвлекаясь слишком далеко:
$ $(exit 3); echo $?
3
$ foo="$(echo bar; exit 3)"; echo $?; echo $foo
3
bar