在我的.bashrc中,我有以下代码
if [`uname` == "Linux"]; then
echo "It worked"
else
echo "It didn't work"
fi
但是当我找到.bashrc时,我得到以下结果
[Linux:命令未找到
它不起作用
扼杀,[
不是拼写错误,它是错误的一部分。如果我注释掉if语句,那么错误就会消失,所以我很确定它是错误的来源。另外,如果我将Linux
更改为linux
,则错误也会更改为小写。
如果我回复uname,我会得到Linux。
要获取我的.bashrc,我使用了source .bashrc
,并且还通过在命令行终端上键入bash
启动了一个新的bash会话。
我认为检查操作系统类型并不难,但我似乎无法找出.bashrc的正确语法。
我看不出我做错了什么,有人可以帮忙吗?
答案 0 :(得分:9)
你忘了方括号后的空格。第一行必须如下所示:
if [ `uname` == "Linux" ]; then
在您的版本中,如果没有空格,[
和uname
的输出将连接成一个名为[Linux
的可执行文件,该文件在PATH中不存在。
答案 1 :(得分:4)
抨击间距的挑剔。您需要条件
中的空格if [ `uname` == "Linux" ]; then
echo "It worked"
else
echo "It didn't work"
fi