Прежде всего, определения псевдонимов игнорируются в сценарии, если явно не включены. Вы можете включить это, выполнив в своем скрипте a
setopt aliases
, но не забывайте, что это влияет только на псевдонимы, которые определены после , а не раньше.
Во-вторых, .zshr c не обрабатывается сценарием zsh, если явно не разрешено. Из справочной страницы zsh:
Если оболочка интерактивная , команды читаются из / etc / zshr c, а затем из ZDOTDIR / .zshr c .
Вы можете активировать интерактивность, запустив свой скрипт с параметром -i
:
zsh -i your_script.zsh
Если вы хотите, чтобы в вашем zsh скрипте выполнялась определенная версия g ++ однако обычным решением является корректировка PATH, чтобы zsh мог найти правильную версию. Например:
PATH=/your/path/to/g++:$PATH zsh your_script.zsh
Если вы всегда хотите, чтобы эта версия g ++ использовалась, вы, конечно, должны соответствующим образом указать PATH в своем .zshr c. Поскольку ваша командная оболочка интерактивна, будет обработан .zshr c, а поскольку PATH является переменной среды, ваш сценарий будет просматривать этот PATH без необходимости делать что-то особенное.