【原创】才开始学着写shell, 大家帮忙看看(在线等)

【原创】才开始学着写shell, 大家帮忙看看(在线等)

#!/bin/sh

echo $1

if[$1="clean"];then
      make clean
fi
make
cp Image /mnt/hgfs/floppy/
--------------------------------------------------

我的意图是执行脚本时判断参数是否带clean, 如果带就执行make clean 再往下走
运行后的结果说是:
command not found

谁帮我看看  谢谢      
复制内容到剪贴板
代码:
dx@cm-dx ~
$ cat test
#!/bin/bash
echo -e  "$1\n"
if(( $1=="hello" ))            //判断要用==,一个=是赋值
then
    echo -e "$1 world\n"
fi
      
复制内容到剪贴板
代码:
knoppix@3[Desktop]$ set kk
knoppix@3[Desktop]$ echo $1
kk
knoppix@3[Desktop]$ [ $1='k' ] && echo Y
Y
knoppix@3[Desktop]$ [ $1 = 'k' ] && echo Y
knoppix@3[Desktop]$ [ $1 = 'kk' ] && echo Y
Y
knoppix@3[Desktop]$                                    
      
回楼上两位
之所以用一个等号是因为书上是这么说的,"string1=string2  如果string1和string2相同 则返回真"

不知道是不是我系统的问题
我输入一个书上的脚本 :
#!/bin/sh
INPUT=$1
if[INPUT -ge 100]
then
echo "test only"
fi
-------------------------------
运行后还是说:
   line 7: if[INPUT -ge 10]:command not found
   line 8: syntax error near unexpected token 'then'
   line 8: 'then'

真是不知道怎么回事      
终于好了   原来是没有加空格  这样:
if [ $INPUT = "clean" ]
then
fi
.........
------------------------------
看来是因为这本书在排版的时候 排版的人员把空格去掉了 造成了我的误解      
[QUOTE=yi1hui]之所以用一个等号是因为书上是这么说的,"string1=string2  如果string1和string2相同 则返回真" ... 看来是因为这本书在排版的时候 排版的人员把空格去掉了 造成了我的误解[/QUOTE]尽信书不如无书       
单个等号有错么
只不过是空格的问题      
单等和双等是一样的      
我可没这么说,呵

用于判断的情况下
=用在[ ]
==用在[[ ]]      
单=是赋值
而== 则是完全匹配