本文共 1279 字,大约阅读时间需要 4 分钟。
1、变量定义等号两边不能有空格
#!/bin/bash
myvar=3 #正确myvar = 3;#等号边多了空格,是错误的!很迥异吧
1.1、还是空格,这次是不能没有
#!/bin/shmyVar="OFF"if [ $myVar = 'OFF' ];then #这里[]中括起来的内容两端必须有空格,if [$myVar = 'OFF']是不能正常工作的。也很迥异吧#注意 if 和 [ 之间也是有空格的! echo "works"else echo "Not works"fi
2、双引号和单引号
testvar=5
myvar='Haha$test' #shell不会解释$test myvar2="Haha$test" #shell会解释$test echo $myvar $myvar2 #输出:Haha$test Haha5
双引号中的字符如果有变量,shell会尝试解释它,单引号中不会。所以,如果字符串中没有要解释的变量尽量使用单引号,据说速度会快些。
这个到不算很迥异,还有很多其他的语言也都有这样的约定。
3、奇怪的算术运算
shell中算术运算需要使用$((和))将算术运算括起来
$(( $myvar + 12 )) #这个非常迥异
4、case语句
case "${x##*.}" in gz) gzunpack ${SROOT}/${x} ;; bz2) bz2unpack ${SROOT}/${x} ;; *) echo "Archive format not recognized." exit ;;esac #这个比较迥异 "esac"、";;"、"bz2)"
5、函数中的变量作用范围
#!/usr/bin/env bash myvar="hello" myfunc() { myvar="one two three" for x in $myvar do echo $x done} myfunc echo $myvar $x输出:onetwothreeone two three three #函数myfunc中的变量,在函数之外仍然存在。#你可以通过关键字 local 限制变量只在函数中有效果 #这个比较迥异
还有更迥异的吗?
转载地址:http://gouml.baihongyu.com/