Поиск индексов и подстрок строк в Zsh?

Обычно вы можете просто экспортировать переменную в конфигурацию вашей оболочки, которая также будет экспортироваться каждый раз при запуске:

export PULSE_SERVER="unix:/tmp/pulse-PKdhtXMmr18n/native"

затем после этого вы можете либо указать исходный файл конфигурации оболочки, скажем:

source ~/.bashrc

или откройте новый терминал, чтобы обновить файл env.

теперь, если вы выберете PULSE, появится всплывающая переменная env.

1
25.02.2021, 07:13
1 ответ

Вы можете выполнять множество строковых операций, используя более сложные формы раскрытия параметров вида ${stuffPARAM}или${PARAMstuff}(или их комбинации ).

Например, ${1%%[0-9]##}является первым параметром($1)с удаленными цифрами(подстановочного знака[0-9]##)в конце(${…%%…}). Вам нужно иметь setopt extended_glob, чтобы шаблон подстановочных знаков [0-9]##работал; поместите это в свой .zshrcили в функцию:

function 61b() {
  setopt local_options extended_glob unset
  if [ -n "$1" ]; then
    open https://sp21.datastructur.es/materials/${1%%[0-9]##}/$1/$1
  else
    open https://sp21.datastructur.es/
  fi
}

Вместо [0-9]##вы можете использовать <->, что означает число в любом диапазоне. («Число» означает не -отрицательное целое число, записанное в десятичном виде, поэтому оно эквивалентно последовательности цифр.)

1
18.03.2021, 22:28

Теги

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