我最近一直在尝试从 bash
切换到 zsh
或 fish
。
我有一些 alisa 和 PATH 设置,但我不想手动将它们复制到 zshrc
或 config.fish
。
我尝试将它们写在一个文件中并使用 source ~/.myshrc
来使用它们。
alisa语句
可以正常获取。但是当在 fish shell 中获取 PATH
时,我得到了一个错误:
In fish, please use {$JAVA_HOME}. export
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
我知道 fish 和 bash 语法不兼容。
那么有没有一种通用的语法可以让我修改myshrc中的PATH然后所有三个shell都可以使用它?
myshrc
文件如下:
# alias
alias apts="apt search"
alias sf="aptitude search -F '%c %p %d %D %I'"
alias apti="sudo aptitude install"
alias aptup="sudo aptitude update"
alias aptgr="sudo aptitude upgrade"
alias aptpu="sudo aptitude purge"
# transset xterm
transset -t -a 0.95 >> /dev/null 2>&1
# set npm path
export PATH=~/.npm-global/bin:$PATH
# set java path
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export JRE_HOME=${java_home}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# set android path
export ANDROID_HOME="/home/moly/Launcher/AndroidSDK/"
export PATH="${PATH}:${ANDROID_HOME}tools/:${ANDROID_HOME}platform-tools/"
最佳答案
在尝试转换到像 fish
这样的新 shell 时,使用现有配置的一种 hacky 方法是简单地用 fish< 结束
,像这样:~/.bashrc
/
# alias
alias apts="apt search"
alias sf="aptitude search -F '%c %p %d %D %I'"
alias apti="sudo aptitude install"
alias aptup="sudo aptitude update"
alias aptgr="sudo aptitude upgrade"
alias aptpu="sudo aptitude purge"
# transset xterm
transset -t -a 0.95 >> /dev/null 2>&1
# set npm path
export PATH=~/.npm-global/bin:$PATH
# set java path
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export JRE_HOME=${java_home}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# set android path
export ANDROID_HOME="/home/moly/Launcher/AndroidSDK/"
export PATH="${PATH}:${ANDROID_HOME}tools/:${ANDROID_HOME}platform-tools/"
# start fish
exec fish
我不认为这是一个很好的解决方案,但这是我所知道的唯一一个让 fish
继承你的 bash
环境而不重写/翻译你的.bashrc
。虽然这可能是不好的做法并且可能导致其他类型的问题,但从短期来看,如果您只想使用别名和 PATH 在已知区域尝试
无需花时间编写配置文件,也许一无所获。fish
,这可能是您所需要的
我没有使用 zsh
的经验,不知道它是否可以像那样同样继承 bash
环境,但如果可以,我不会感到惊讶。
关于linux - fish、zsh、bash 可以导入同一个配置文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70783183/