1

在我的 .bashrc 我有以下代码

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

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

[Linux:找不到命令

它没有用

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

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

要获取我使用过的 .bashrcsource .bashrc并且还通过bash在命令行终端上键入来启动新的 bash 会话。

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

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

4

2 回答 2

9

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

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

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

于 2012-05-30T20:03:52.423 回答
4

对间距挑剔。你需要在你的条件空间

if [ `uname` == "Linux" ]; then
    echo "It worked"
else
    echo "It didn't work"
fi
于 2012-05-30T20:04:28.250 回答