В zsh подоболочка, созданная в круглых скобках, может иметь исходный файл rcfile для использования команд, которые могут быть псевдонимами, которые доступны только при добавлении определенных каталогов в PATH
и т. Д .:
~ » /bin/zsh -c "workon"
zsh:1: command not found: workon
------------------------------------------------------------
~ » /bin/zsh -c "source ~/.zshrc; workon"
env1
env2
env3
... (expected output)
Однако с bash это не так:
~ » /bin/bash -c "workon"
/bin/bash: workon: command not found
------------------------------------------------------------
~ » /bin/bash -c "source ~/.bashrc; workon"
/bin/bash: workon: command not found
------------------------------------------------------------
~ » bash
sean@helium:~$ workon
env1
env2
env3
... (expected output)
Есть ли какой-нибудь способ, которым bash subshell может создать rcfile?
Чтобы получить преимущество в ответах «проблема XY», это для скрипта, вызываемого in
:
#!/bin/zsh
(source ~/.zshrc; cd $1; ${@:2})
У меня есть каталог , полные проекты ( с использованием Git) , где я часто забываю , если я оставил ничего незавершенного, так что in
позволяет мне быстро писать $ in ProjectDir/ git status
а не $ (cd ProjectDir; git status)
(бывший чувствует легче набрать, чем последний).
Желательно, чтобы этот скрипт можно было использовать с bash (именно поэтому я и спрашиваю, хотя в настоящее время он работает с zsh).