回顾
- 基本的变量替换,其一直接用命令替换,其二使用
$(...)
方式进行替换; - 基本的赋值;
- 在Bash脚本里,变量没有规定属于哪种类型,只是根据赋值直接决定数据类型;
- 介绍了一些特殊的变量类型,如局部变量、环境变量以及位置变量。
引用
-
引用变量
引用意味着保护在引号中的字符串。引用在保护被引起字符串中的特殊字符被shell或shell脚本解释或扩展。(如果一个字符能被特殊解释为不同于它字面上表示的意思,那么这个字符是“特殊”的,比如说通配符-- *
)。 -
转义
转义是引用单字符的方法。在单个字符前面的转义符\
告诉shell不必特殊解释这个字符,只把它当成字面上的意思。例如:\n
:表示新行;\r
:表示回车;\t
:表示水平的制表符;\v
:表示垂直的制表符;\b
:表示后退符;\a
:表示“警告”(蜂鸣或是闪动);\0xx
:翻译成ASCII码为八进制0xx所表示的字符;\"
:表示引号"
的字面意思;\$
:表示美元符;\\
:表示反斜杠。
退出和退出状态
exit命令一般用于结束一个脚本,就像C语言的exit一样。它也能返回一个值给父进程。
每一个命令都能返回一个退出状态(有时也看做返回状态)。一个命令执行成功返回0,一个执行不成功的命令则返回一个非零值,此值通常可以被解释成一个对应的错误值。除了一些例外的情况,一个行为端庄的UNIX命令,程序或是软件包执行成功能返回0的作为退出码。
同样的,在脚本里的函数和脚本自身都会返回一个退出状态码。在脚本或函数里被执行的最后一个命令将决定退出状态码。在一个脚本里,exit nnn 命令将会返回shell一个nnn的退出状态码。(nnn必须是一个在0-255范围的十进制整数)。
$?
变量保存了最后一个命令执行后的退出状态。当一个函数返回时,$?
保存了函数里最后一个命令的退出状态码。这就是Bash里函数返回值的处理办法。当一个脚本运行结束,$?
变量保存脚本的退出状态,而脚本的退出状态则是脚本中最后一个已执行命令的退出状态。并且依照惯例,0表示执行成功,1-255的整数范围表示错误。