【发布时间】:2012-04-12 05:58:54
【问题描述】:
我有一个关于如何判断用户正在使用哪个 shell 的问题。假设一个脚本,如果用户使用 zsh,则将 PATH 放入他的.zshrc,如果使用 bash,则应放入 .bashrc。并相应地设置 rvmrc。
#!/usr/bin/env bash
export PATH='/usr/local/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
我尝试了以下方法,但它不起作用:(
if [[ $0 == "bash" ]]; then
export PATH='/usr/local/bin:$PATH' >> ~/.bashrc
elif [[ $0 == "zsh" ]]; then
export PATH='/usr/local/bin:$PATH' >> ~/.zshrc
fi
# ... more commands ...
if [[ $0 == "bash" ]]; then
[[ -s '/Users/`whoami`/.rvm/scripts/rvm' ]] && source '/Users/`whoami`/.rvm/scripts/rvm' >> ~/.bashrc
source ~/.bashrc
elif [[ $0 == "zsh" ]]; then
[[ -s '/Users/`whoami`/.rvm/scripts/rvm' ]] && source '/Users/`whoami`/.rvm/scripts/rvm' >> ~/.zshrc
source ~/.zshrc
fi
【问题讨论】:
-
把它放在
.profile中不是更有意义吗,它可以跨shell 移植,包括sh? -
@tripleee 嗨,因为我认为这是 bash 或 zsh 的特定内容...
-
$0 == "-zsh"而不是$0 == "zsh"