+ -
当前位置:首页 → 问答吧 → 请教高手:shell字符串比较问题

请教高手:shell字符串比较问题

时间:2011-06-21

来源:互联网

//如下为tmp.sh

sysdb_user=
sysdb_passwd=
cms_enabler_url=
ctrl_int4value=

IFS=' '
while read f1 f2 f3
do
  echo "f1 = $f1, f2=$f2, f3=$f3"
  if (($f1=="sysdb"))
  then
  echo "sysdb_user = $f2"
  echo "sysdbpwd = $f3"
  elif (($f1=="SID"))
  then
  echo "sid = $f3"
  elif (($f1=="NAME"))
  then
  echo "name = $f3"
  else
  echo "not find"
  fi
done < "wxdata"

//如下为wxdata
sysdb wx wx
SID sid 1
NAME name yaxiong


//执行tmp.sh结果
f1 = sysdb, f2=wx, f3=wx
sysdb_user = wx
sysdbpwd = wx
f1 = SID, f2=sid, f3=1
sysdb_user = sid
sysdbpwd = 1
f1 = NAME, f2=name, f3=yaxiong
sysdb_user = name
sysdbpwd = yaxiong

如上结果(标红),为什么每次循环都进入第一个if (($f1=="sysdb"))呢?
感谢!!!

作者: wxdlut   发布时间: 2011-06-21

shell理的比较用的是
[]或者[[]]
不是c语言里的()

作者: lgxwqq111   发布时间: 2011-06-21