如果你使用的是&符号而不是分号,则Shell将在后台执行其前面的命令,这意味着,Shell不用等到该命令完成,就可以继续执行下一个命令。
Shell识别三种基本命令:内建命令、Shell函数以及外部命令:
内建命令就是由Shell本身所执行的命令。有些命令是由其必要性才内建的,例如cd用来改变目录,read会将来自用户的输入数据传递给Shell变量。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,另外还有I/O命令,例如echo与printf
Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用
外部命令就是由Shell的副本(新的进程)所执行的命令
变量
变量赋值的方式为:先写变量名称,紧接这=字符,最后是新值,中间完全没有任何空格
当你想取出Shell变量的值时,需于变量名称前面加上$字符。当所赋予的值内包含空格时,请加上引号:
当变量座位第二个变量的新值时,不需要使用双引号,不过,当你将几个变量连接起来时,就需要使用引号了。
![Shell脚本学习指南(一)](http://img.aihuau.com/images/02111102/02061736t0189485921b87f21ba.png)
printf
printf命令的完整语法分为两部分:
printfformat-string [arguments ...]
第一部分是一个字符串,用来描述输出的排列方式,最好为此字符串加上引号。此字符串包含了按字面显示的字符以及格式声明,后者是特殊的占位符,用来描述如何显示相应的参数
第二部分是与格式申明相对应的参数列表,例如一系列的字符串或变量值。格式申明分成两部分:百分比符合和指示符
格式字符串中,一般字符会按字面显示。转移序列则像echo那样,解释后在输出相应的字符
基本的I/O重定向
标准输入/输出(standard I/O)可能是软件设计原则里面最重要的概念了。
概念是:程序应该有数据的来源端、数据库的目的端以及报告问题的地方,它们分别被称为标准输入、标准输出以及标准错误输出
基本查找命令
默认路径因系统而异,不过至少包含/bin和/usr/bin
将个人的bin目录附加到$PATH:PATH=$PATH:/home/user/bin
要让修改永久生效,在.profile文件中把你的bin目录加入$PATH,而每次登录时,Shell都将读取.profile文件
简单的执行跟踪
执行跟踪功能打开后,Shell显示每个被执行到的命令,并在前面加上一个“+”,一个加号后面跟一个空格
可以在脚本里,用set-x命令将执行跟踪的功能打开,然后在使用set +x关闭它