【发布时间】:2019-07-03 13:48:04
【问题描述】:
我在家和工作中使用几种不同的操作系统,我希望能够有条件地加载特定于 platorm 的 ZSH 设置,具体取决于我在给定时刻使用的操作系统。
我试过了,但它没有加载我期望的所有内容:
# Condtitional loading of zsh settings per platform
if command apt > /dev/null; then
source $ZSH_CUSTOM/os/debian.zsh
elif command systemctl > /dev/null; then
source $ZSH_CUSTOM/os/systemd.zsh
elif command freebsd-version > /dev/null; then
source $ZSH_CUSTOM/os/freebsd.zsh
elif [[ `uname` == "Darwin" ]]; then
source $ZSH_CUSTOM/os/mac.zsh
elif command kubectl > /dev/null; then
source $ZSH_CUSTOM/os/kubernetes.zsh
else
echo 'Unknown OS!'
fi
进行此检测的最佳方法是什么?我做错了什么?
我知道我的这种方法不起作用,因为当我运行 zsh -o SOURCE_TRACE 时,它不会显示所有所需的文件来源。
提前致谢!
【问题讨论】:
-
大概
/etc对于每个操作系统都是唯一的;只需向/etc/zshenv添加一个标识当前操作系统的环境变量,然后在您的配置中检查该变量。 -
@chepner 您要针对 /etc 的哪一部分?
-
/etc/zshenv。/etc中的很多内容是特定于操作系统的(或至少是特定于发行版的),所以我假设您不会在操作系统安装之间共享同一个目录。
标签: linux bash shell zsh oh-my-zsh