У меня есть файл, который содержит несколько вспомогательных функций, предназначенных для использования только в других скриптах ZSH. Я не хочу, чтобы они загружались с моим профилем. Для того, чтобы эти функции доступны в моем сценарии, я должен был бы source этого файла.

Можно ли каким-то образом загрузить автоматический сценарий пролога (или предварительный сценарий) перед всеми моими сценариями ZSH?

Моя текущая идея состоит в том, чтобы alias -s zsh к пользовательской функции, которая все это для меня:

  • объединить файл пролога и текущий скрипт
  • вызывает зш с таким измененным вводом

но сейчас я как-то не могу этого сделать (не сплю почти сутки). Пожалуйста, у кого-нибудь есть рабочее решение?

1 ответ1

1

Зачем беспокоиться с псевдонимом? Я считаю, что было бы неплохо просто сделать короткий скрипт, который будет источником вашего скрипта, а затем zsh $@:

#!/bin/zsh
source my/script/path
$@

Затем (если вы назвали его libload) он работает следующим образом ./libload yourscript -options -options2

Вы также можете просто поместить свой код прямо в файл, если это проще. Кроме того, должно быть возможно добавить что-то вроде: #!/bin/zsh /path/to/libload в начало каждого скрипта, но в моей настройке по какой-то причине не работает правильный ATM. Тем не менее, было бы почти так же легко добавить source /path/to/your/scripts в каждый файл.

Вероятно, не стоит совмещать псевдонимы для всех вызовов zsh. Для вас лучше создать модифицированный интерпретатор, как я показал, чем заменить команду ZSH по умолчанию (или по умолчанию для любого другого интерпретатора).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .