当我在.bashrc中使用`uname`时,为什么会出现错误?

Fre*_*red 1 linux bash uname

在我的.bashrc中,我有以下代码

if [`uname` == "Linux"]; then
    echo "It worked"
else
    echo "It didn't work"
fi
Run Code Online (Sandbox Code Playgroud)

但是当我获取.bashrc时,我得到以下结果

[Linux:命令未找到

它没用

扼杀,这[不是一个错字,它是错误的一部分.如果我注释掉if语句,那么错误就会消失,所以我很确定它是错误的来源.另外,如果我更改Linuxlinux,则错误也会更改为小写.

如果我回复uname我得到Linux.

要使用我已经使用过的.bashrc source .bashrc,也可以通过bash在命令行终端上输入来启动一个新的bash会话.

我认为检查操作系统类型并不困难,但我似乎无法找出.bashrc的正确语法.

我不明白我做错了什么,有人可以帮忙吗?

Flo*_*ade 9

你忘了方括号后的空格.第一行必须如下所示:

if [ `uname` == "Linux" ]; then
Run Code Online (Sandbox Code Playgroud)

在您的版本中,如果没有空格,则[输出和输出将uname连接成一个名为的可执行文件[Linux,该文件在PATH中不存在.