首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用.zshrc中的if语句检查Linux操作系统是否在WSL上运行是最有效的?

用.zshrc中的if语句检查Linux操作系统是否在WSL上运行是最有效的?
EN

Stack Overflow用户
提问于 2019-01-01 23:21:04
回答 3查看 1.1K关注 0票数 0

在我的.zshrc文件中,我根据我是在Linux上运行还是在macOS上运行,有条件地设置我的PATH变量--我现在正在尝试弄清楚,如果我在运行在WSL上的Linux上工作,是否有一种方法可以有效地从我的.zshrc中检测出来。

我想知道我是否可以以某种方式检查/mnt/c/Program文件或类似文件的存在-但我想肯定有更好的方法?

我当前的.zshrc示例:

代码语言:javascript
运行
复制
PATH="/usr/local/sbin:$PATH" 
if ! [[ "$OSTYPE" == "darwin"* ]]; then
  export PATH="$HOME/.nodenv/bin:$HOME/.rbenv/bin:$PATH"
fi
eval "$(rbenv init -)"
eval "$(nodenv init -)"
PATH="$HOME/.bin:$PATH"
if [[ "$OSTYPE" == "darwin"* ]]; then
  export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"
  export PATH="$PATH:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/platform-tools:$ANDROID_SDK_ROOT/build-tools:$ANDROID_SDK_ROOT/tools/lib/x86_64"
  export PATH="$PATH:/usr/local/share/dotnet"
fi

如果任何人有比检查/mnt/c/Program文件是否存在更好的想法,我将非常感谢!

EN

Stack Overflow用户

发布于 2019-01-02 02:03:18

感谢Biswapiryo的评论-我想出了这个解决方案来检测WSL:

代码语言:javascript
运行
复制
if [[ $(uname -r)] == ^*Microsoft$ ]]; then
  # Code goes here
fi
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53996607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档