Это происходит, когда вы по какой-либо причине запускаете два сценария с разными интерпретаторами.
Ваш сценарий работает с Bash, поскольку он расширяет ~
как после =
, так и в PATH
. Сбой, например, dash
, который не работает ни один.
Вы можете заставить его работать во всех оболочках, используя $HOME
вместо ~
:
export PATH="$HOME/bin:$PATH"
Если вы хотите дополнительно изменения в PATH для применения к будущему сценарию, применяются обычные правила source
.