linux - 为什么在我的 .bashrc 中使用 `uname` 时出现错误?

标签 linux bash uname

在我的 .bashrc 中有以下代码

if [`uname` == "Linux"]; then
    echo "It worked"
else
    echo "It didn't work"
fi

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

[Linux: command not found

It didn't work

奇怪的是,[ 不是拼写错误,而是错误的一部分。如果我注释掉 if 语句,错误就会消失,所以我很确定这是错误的来源。另外,如果我将 Linux 更改为 linux,则错误也会更改为小写。

如果我回显 uname,我会得到 Linux。

为了获得我的 .bashrc,我使用了 source .bashrc 并且还通过在命令行终端上键入 bash 开始了一个新的 bash session 。

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

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

最佳答案

您忘记了方括号后的空格。第一行必须如下所示:

if [ `uname` == "Linux" ]; then

在您的版本中,没有空格,[uname 的输出被连接到一个名为 [Linux 的可执行文件中,它确实PATH 中不存在。

关于linux - 为什么在我的 .bashrc 中使用 `uname` 时出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823418/

相关文章:

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

linux - 有人能解释一下为什么 awk 的 sub()/gsub() 是这样工作的吗?

linux - 在汇编中查找数字是偶数/奇数

bash - 在 Bash 中处理带有多个参数的命令行选项

regex - sed:在匹配之前显示行

linux - 如何在没有arch的情况下获取内核版本

linux - 通过 .bashrc 阻止黑客

linux - 如何将 Visual Studio Code 与 Haskell 和 Docker 结合使用

bash - bash 函数可以在不同的脚本中使用吗?