LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 853|回复: 12

if出错

[复制链接]
发表于 2003-5-26 15:52:07 | 显示全部楼层 |阅读模式
if [ "$1" = "3" ]
then
echo "="
else
echo "!="
fi
每次./equal.sh 3后总是提示
./equal.sh: line 2: if[ 3=3 ]: command not found
./equal.sh: line 3: syntax error near unexpected token 'then'
./equal.sh: line 3: 'then'
发表于 2003-5-26 15:58:04 | 显示全部楼层
$read
3
$if [ $REPLY = 3 ]
> then
> echo "="
> else
> echo "!="
> fi
=
你这样试试,
 楼主| 发表于 2003-5-26 16:04:05 | 显示全部楼层
按照你说的可以,我的错在哪里了呢?
谢谢谢谢~~
发表于 2003-5-26 16:22:47 | 显示全部楼层
我怀疑你是执行的时候方法不对吧~~你按照下面任意一个试试;)
脚本第一行加入:
#!/bin/bash
. filename 3
or
sh filename3
or
bash filename3
 楼主| 发表于 2003-5-26 16:57:24 | 显示全部楼层
3种运行方式提示错误都是一样的~
这3种方法有什么区别呀?
发表于 2003-5-26 18:09:21 | 显示全部楼层
if [ "$1" == "3" ]
发表于 2003-5-26 18:44:42 | 显示全部楼层
#!/bin/bash
if [ "$1" = "3" ]
then
echo "="
else
echo "!="
fi
在这里,"="和"=="是一样的作用,我使过都没有问题,!
运行:
$sh xx 3
=
发表于 2003-5-26 18:49:40 | 显示全部楼层
不可能把"="怎么和“==”是一样的作用,一个是赋值,一个是判断。我感觉if里用"="就有可能出问题!只能是一种巧合!
发表于 2003-5-26 19:00:06 | 显示全部楼层
最初由 javalee 发表
#!/bin/bash
if [ "$1" = "3" ]
then
echo "="
else
echo "!="
fi
在这里,"="和"=="是一样的作用,我使过都没有问题,!
运行:
$sh xx 3
=


oh..我这里不是说=和==的问题
bash里面这两个是等价的

楼主的问题是,if和[之间应该有空格,但是他程序里面写掉了。
发表于 2003-5-26 19:05:21 | 显示全部楼层
那要看这个=和==出现在什么位置.你当然不可能用==去赋值,而在if的条件判断中,你可以用=,也可以用==,我作的实验,
javalee//home/javalee/lx>read读取输入到shell默认变量$REPLY
abc
javalee//home/javalee/lx>if [ "$REPLY" = "abc" ];then echo ok;fi
ok
javalee//home/javalee/lx>if [ $REPLY == abc ] ;then echo ok;fi
ok
javalee//home/javalee/lx>if [[ "$REPLY" = "abc" ]];then echo 0k;fi
0k
javalee//home/javalee/lx>if [[ $REPLY == abc ]];then echo ok;fi
ok
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表