bad-op.sh

来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· Shell 代码 · 共 47 行

SH
47
字号
#!/bin/bash# bad-op.sh: 尝试一下对整数使用字符串比较. echonumber=1# 下面的"while循环"有两个错误: #+ 一个比较明显, 而另一个比较隐蔽. while [ "$number" < 5 ]    # 错! 应该是:  while [ "$number" -lt 5 ]do  echo -n "$number "  let "number += 1"done  #  如果你企图运行这个错误的脚本, 那么就会得到一个错误消息: #+ bad-op.sh: line 10: 5: No such file or directory#  在单中括号结构([ ])中, "<"必须被转义. #+ 即便如此, 比较两个整数还是错误的. echo "---------------------"while [ "$number" \< 5 ]    #  1 2 3 4do                          #  echo -n "$number "        #  看起来*好像可以工作, 但是 . . .  let "number += 1"         #+ 事实上是比较ASCII码, done                        #+ 而不是整数比较. echo; echo "---------------------"# 这么做会产生问题. 比如: lesser=5greater=105if [ "$greater" \< "$lesser" ]then  echo "$greater is less than $lesser"fi                          # 105 is less than 5#  事实上, 在字符串比较中(按照ASCII码的顺序)#+ "105"小于"5". echoexit 0

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?