Mat*_*rka 3 windows shell zsh windows-subsystem-for-linux
我正在尝试向我的 .zshrc 文件添加一个条件,该条件将初始化一些配置内容,而我只想在适用于 Linux 的 Windows 子系统中进行这些配置。我尝试过这个但没有运气:
if [ "$('cmd.exe /c "systeminfo" | grep "^OS Name"')" =~ "Windows" ]; then
echo "windows baby!"
fi
Run Code Online (Sandbox Code Playgroud)
这使:
no such file or directory: cmd.exe /c "systeminfo" | grep "^OS Name"
Run Code Online (Sandbox Code Playgroud)
...但是如果我直接在 shell 中键入该命令,该命令就会起作用。有任何想法吗?
Ash*_*cob 10
使用uname -r就可以了
根据https://github.com/microsoft/WSL/issues/423#issuecomment-608236476,如果您使用
uname -r | sed -n 's/.*\( *Microsoft *\).*/\1/ip'
Run Code Online (Sandbox Code Playgroud)
如果是 WSL,您将得到“Microsoft”输出。否则,您应该不会得到任何输出。
所以你可以使用类似的东西
if [ $(uname -r | sed -n 's/.*\( *Microsoft *\).*/\1/ip') ];
then
echo "This is Windows WSL baby!"
else
echo "Not Windows"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1816 次 |
| 最近记录: |