Откройте сеанс tmux и запустите первую команду. Затем запустите больше команд в новых окнах и равномерно распределите размеры окон в конце.
tmux \
new-session "command1 ; read" \; \
split-window "command2 ; read" \; \
split-window "command3 ; read" \; \
split-window "command4 ; read" \; \
select-layout even-vertical
чтение
после каждой команды заставляет окно оставаться открытым после завершения команды, чтобы вы могли прочитать вывод.
Вы можете использовать простую функцию для удаленияlocal
-ness из переменной через unset
+set
:
function return_local()
{
unset $1 # must be local
eval "$1=\"\$2\""
}
Мы должны использовать eval
вместо declare
, потому что он создает либо локальную, либо экспортируемую переменную, когда нам нужно создать не локальную не экспортируемую переменную.
function test()
{
local my_return_value=123
#...
return_local my_return_value "$my_return_value"
}
Инструкция unset
удаляет самую внутреннюю local
переменную, поэтому вам нужно писать return_local
в каждой функции, которая хочет вернуть локальную переменную. Таким образом, return_local
можно использовать в контекстах вложенных вызовов.
И нет необходимости использовать оператор $(...)
, пока он создает отдельный процесс, который стоит производительности в bash под Windows, потому что создание процесса там недешево.