使用 bash,我想找到操作系统并通知用户。我试过:
OS='uname -s'
echo "$OS"
if [ "$OS" == 'Linux' ]; then
echo "Linux"
else
echo "Not Linux"
fi
我只是得到
uname -s
Not Linux
在终端上,这是错误的。如何正确地将字符串设置为 uname 返回的内容?
谢谢
而不是单引号,您可能打算使用反引号:
OS=`uname -s`
但你真的想要
OS=$(uname -s)
此外,您可以考虑使用 case,而不是最终将成为 if/else 系列的 if 语句:
case $( uname -s ) in
Linux) echo Linux;;
*) echo other;;
esac
这将按要求返回操作系统 - 请注意,uname
不一定在所有操作系统上都可用,因此它不是此答案的一部分。
case "$OSTYPE" in
linux*) echo "linux" ;;
darwin*) echo "mac" ;;
msys*) echo "windows" ;;
solaris*) echo "solaris" ;;
bsd*) echo "bsd" ;;
*) echo "unknown" ;;
esac