Открытие нескольких экранов в терминале Linux с помощью скрипта или команды

С сохранением этого кода в файл first,

pattern=fo*
input=foo
case $input in
$pattern)
   print T
   ;;
fo*)
   print NIL
   ;;
esac

в -xмы можем заметить, что переменная отображается как значение в кавычках, в то время как необработанное выражение не:

% zsh -x first
+first:1> pattern='fo*'
+first:2> input=foo
+first:3> case foo (fo\*)
+first:3> case foo (fo*)
+first:8> print NIL
NIL

То есть переменная обрабатывается как литеральная строка. Если вы проведете достаточно времени в zshexpn(1), вы можете знать о флаге замены glob

   ${~spec}
          Turn on the GLOB_SUBST option for the evaluation of spec; if the
          `~'  is  doubled,  turn  it  off.   When this option is set, the
          string resulting from the expansion will  be  interpreted  as  a
          pattern anywhere that is possible,

поэтому, если мы изменим $pattern, чтобы использовать это

pattern=fo*
input=foo
case $input in
$~pattern)                # !
   print T
   ;;
fo*)
   print NIL
   ;;
esac

вместо этого мы видим

% zsh -x second
+second:1> pattern='fo*'
+second:2> input=foo
+second:3> case foo (fo*)
+second:5> print T
T

для вашего случая шаблон должен быть заключен в кавычки:

pattern='(foo|bar)'
input=foo
case $input in
$~pattern)
   print T
   ;;
*)
   print NIL
   ;;
esac
1
24.09.2020, 19:19
1 ответ

Здесь можно использовать несколько подходов. Первый и самый простой — это использовать инструмент вроде tmuxinator для управления вашей конфигурацией tmux, если вы всегда хотите одного и того же.

Вы также можете создать сценарий tmux из командной строки. Например, вы можете сделать это, чтобы создать один новый сеанс с новым окном, разделенным на 4 -сторон :

.
#!/bin/sh

tmux source-file <<EOF
new-session
split-window -h
split-window -v
select-pane -L
split-window -v
EOF

На страницах руководства tmux описаны команды, которые вы можете использовать; это намеренно разработано, чтобы быть очень скриптовым. Вы можете увидеть сценарий Ruby, который я использовал для этого .

2
18.03.2021, 23:03

Теги

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