在我的 .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/