变量参数

1. $ 变量替换操作符,只有在变量被申明,赋值,unset或exported或者是在变量代表一个signal的时候,变量才会以本来的面目出现在脚本里,变量在被赋值的时候,可能需要使用"=",read状态或者是循环的头部,在""中还是会发生变量替换,这叫全引用,也叫强引用

2. 引用一个变量将保留其中的空白,如果是变量替换就不会保留了

3. 一个空值变量,或者是根本就没声明的变量,在赋值之前使用它可能会引起问题,但还是可以用来做算术运算,就好象它的值为0一样

4. bash并不对变量区分"类型",本质上,bash变量都是字符串,依赖上下文,bash也允许比较操作和算术操作,取决于变量中的值是否只有数字

5. 临时变量只有在代码块或者函数中才可见,环境变量将改变用户接口和shell行为,每次shell启动,它将创建自己的环境变量,更新或者添加新的环境变量,将导致shell更新它的环境,同时也会影响所有继承这个环境的所有子进程

6. 引号'的特殊效果就是,保护字符串中的特殊字符不被shell或者是shell脚本重新解释或者扩展,还可以抑制echo命令换行作用

7. '不允许引用变量,$的特殊含义被关闭,单引号比双引号严格

8. 转义是一种引用单个字符的方法,一个具有特殊含义的字符前边放上一个转义字符(\)就告诉shell这个字符失去了特殊的含义,在特定的命令和工作中,转义符会起到相反的效果

9. 转义符也提供续行功能,一般每一行都包含一个不同的命令,但如果在行尾加上\,那就会接受新行的输入,作为这一行的补充

10. exit命令用来接受脚本,会返回一个值来传给父进程,父进程会判断是否可用,$?读取最后执行命令的退出码,一般情况下0为成功,非0为失败

11. !逻辑非操作,会反转test命令的结果,并会影响exit状态

12. true命令是shell内建命令,什么事都不做,就是shell返回0

13. 一个if/then结构可以测试命令的返回值是否为0,如果是的话,执行更多命令

14. "["左中括号与test命令等价,它是一个内建命令,这个命令把它的参数作为比较表达式或是文件测试,并根据比较的结果,返回一个退出码

15. bash把[[ $a -lt $b ]]看作一个单独的元素,并返回一个退出码,[[]]是一个扩展的test命令,在[[]]结构中,将没有文件扩展或者单词分离,但会发生参数扩展和命令替换  

16. ((...))和let... 结果也返回一个退出码,当所测试的算术表达式结果为非0的时候,他们的退出码将返回0

17. test命令是bash的内建命令,用来测试文件类型和比较字符串

18. []中可以使用文件操作测试和比较操作

posted on 2014-04-25 11:22  kangbry  阅读(531)  评论(0编辑  收藏  举报

导航