« ICP 终于批下来了 | Main | 归整 ipcn ipchina 等域名 整理 DNS Server »
July 15, 2005
bash script 字符串比较容错性问题
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。 https://windtear.net/archives/2005/07/15/000718.html http://windtear.net/archives/2005/07/15/000718.html bash script 中 字符串比较是 if [ "$stra" = "$strb" ] 或者 if [ "$stra" == "$strb" ] != 不等于 这里会有一个问题就是如果 $stra 包括了回车会造成语法错误 解决办法就是用 [[ ]] 然后做for循环 % a="a b c" % if [[ ! -z $a ]]; then echo $a; fi a b c % if [ "a"$a"a" != "aa" ]; then echo $a; fi bash: [: too many arguments % if [[ "a"$a"a" != "aa" ]]; then echo $a; fi a b c % if [[ "a"$a"a" != "aa" ]]; then for i in $a;do echo $i;echo -;done; fi a - b - c - 有时往往需要循环嵌套 只要注意选择不通的循环因子就行了 % for a in a b c;do echo $a;for b in 1 2 3;do echo $b;done;done a 1 2 3 b 1 2 3 c 1 2 3 《Advanced Bash-Scripting Guide》第52页还给出了几个特殊的示例供理解 [[ $a == z* ]] # 模式匹配 $a 如果开头字母是 z true [[ $a == "z*" ]] # $a 等于 z* true [ $a == z* ] #File globbing and word splitting take place. [ "$a" == "z*" ] # $a 等于 z* true |
Posted by windtear at July 15, 2005 8:58 PM