LinuxSir.cn,穿越时空的Linuxsir!

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

debian调试下面代码

[复制链接]
发表于 2003-11-29 23:40:02 | 显示全部楼层 |阅读模式
drawper ()
{
_per=`expr $1 \* 100 / $2`
case `expr $_per / 4 % 4` in
0) _char="|" ;;
1) _char="/" ;;
2) _char="-" ;;
3) _char="\\" ;;
esac
printf "\r$_char $_per%%"
if [ $1 -eq $2 ];then
printf "\n"
fi
}

i=1
while [ $i -le 100 ]
do
drawper $i 100
i=`expr $i + 1`
done

怎么提示[:-le :unary operator expected
le怎么会是一元呢?
 楼主| 发表于 2003-11-29 23:47:13 | 显示全部楼层
还有:
[:100:unary operator expected
expr:syntac error
发表于 2003-11-29 23:52:04 | 显示全部楼层
这是一个显示进度尺的例子(CU上的吧~~)
-le在BSH中是对两个正整数比较的两元操作符!
 楼主| 发表于 2003-11-29 23:54:00 | 显示全部楼层
expr:syntac error
???
发表于 2003-11-29 23:54:12 | 显示全部楼层
你是什么shell?
发表于 2003-11-29 23:54:31 | 显示全部楼层
也许应该是 [[ $i -le 100 ]]
不同的 shell 吧。
 楼主| 发表于 2003-11-30 00:00:08 | 显示全部楼层
bash
[[ $i -le 100 ]]
怎么解?
 楼主| 发表于 2003-11-30 00:02:14 | 显示全部楼层
最初由 lordbyorn 发表
也许应该是 [[ $i -le 100 ]]
不同的 shell 吧。


就是这样。。
debian/bash怎么会这样呢?
发表于 2003-11-30 00:03:38 | 显示全部楼层
expr 应该是$i的问题。先  echo $i 看是什么

不是吧。真的是这样?
[[ expr ]] 是标准的写法吧。
 楼主| 发表于 2003-11-30 00:09:18 | 显示全部楼层
最初由 lordbyorn 发表
应该是$i的问题。
先  echo $i 看是什么

不是吧。真的是这样?

[[ expr ]] 是标准的写法吧。

结果已经出来了

就是这个原因
[]->[[]]
就好了,不太明白

bash下[]不就是标准写法吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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