从Bash脚本中检测操作系统并通知用户

Gra*_*ham 6 string bash system uname

使用bash,我想找到操作系统并通知用户.我试过了:

OS='uname -s'
echo "$OS"
if [ "$OS" == 'Linux' ]; then
    echo "Linux"
else 
    echo "Not Linux"
fi
Run Code Online (Sandbox Code Playgroud)

我得到了

uname -s 
Not Linux
Run Code Online (Sandbox Code Playgroud)

在终端上,这是错误的.如何正确设置字符串到uname返回的内容?

谢谢

Wil*_*ell 12

而不是单引号,你可能意味着使用反引号:

OS=`uname -s`
Run Code Online (Sandbox Code Playgroud)

但你真的想要

OS=$(uname -s)
Run Code Online (Sandbox Code Playgroud)

此外,您可以考虑使用案例,而不是最终将成为if/else系列的if语句:

case $( uname -s ) in
Linux) echo Linux;;
*)     echo other;;
esac
Run Code Online (Sandbox Code Playgroud)