Я хочу grep текущего скрипта, чтобы я мог распечатать справку и версию информация из раздела комментариев вверху.
Хотя
$ 0
содержит имя сценария, он может содержать путь с префиксом в зависимости от способа вызова сценария, я всегда использовал$ {0 ## * /}
для печати имя сценария в выводе справки, которое удаляет любой начальный путь из$ 0
.Взято из Advanced Bash Scripting guide - Раздел 10.2. Подстановка параметров
$ {var # Pattern}
Удаление из
$ var
самой короткой части$ Pattern
, который соответствует внешнему интерфейсу$ var
.
$ {var ## Pattern}
Удалите из
$ var
самую длинную часть$ Pattern
, которая соответствует передней части$ var
.Таким образом, самая длинная часть
$ 0
, которая соответствует* /
, будет префиксом всего пути, возвращающим только имя сценария.
Обычно вы можете просто экспортировать переменную в конфигурацию вашей оболочки, которая также будет экспортироваться каждый раз при запуске:
export PULSE_SERVER="unix:/tmp/pulse-PKdhtXMmr18n/native"
затем после этого вы можете либо указать исходный файл конфигурации оболочки, скажем:
source ~/.bashrc
или откройте новый терминал, чтобы обновить файл env.
теперь, если вы выберете PULSE, появится всплывающая переменная env.