首页 > 技术文章 > RHEL之(八)Red Hat Linux Shell编程基础 III :特殊含义的字符以及Bash shell其他扩展功能

zylSec 2021-05-26 00:00 原文

  特殊含义的字符:# \ '' ""

  5-1:注释符号 #

  #:注释的开头,该字符以及同一行中该字符后面的所有的内容将被忽略

  例如:shell脚本的第一行要加上 #!/bin/bash   

  

  建议:写脚本、配置文件的时候尽量多加注释,可方便自己和别人能够理解读懂代码。

 

  5-2:转义字符 \

  在Bash Shell里面,一些字符或单词具有特殊含义,在某些情况下,我们需要的仅仅是它的字面值,我们可以使用转义符号 (\),单引号('')或双引号("")来禁用特殊字符或单词的特殊含义

  转义字符(\):仅取消跟在改字符后面的单个字符的特殊含义

   

  当文本字符串中的多个字符需要保留字面含义时,我们可以多次使 用转义字符(\)或者使用单引号('')。

   

  单引号(''):保留其括起的所有字符的字面含义

   

  双引号(""):双引号和单引号的区别在于,双引号不保留美元符号($)反引号(``)反斜杠(\)的字面值,使用双引号括起时,美元符号($)和反引号(``)保留其特殊含义,并且仅当反斜杠字符(\)前面是美元符号($)、反引号(``)、双引号("")、 反斜杠(\)或者换行符的时候,才会保留反斜杠字符(\)的特殊含义。

   

 

 

  Tips

  变量中存储的2种常见的数据类型为整数值(integer)以及字符串值(string),为变量分配字符串值时,我们要用引号括起来,如果没有将字符串值放置在单引号或双引号中,Bash会将空格字符解释为单词分隔符。

 

 

  5-3花括号{}

  通过在变量名称前面加上美元符号($),可以通过称为变量扩展的过程来重新调用变量的值。

  可以使用 $var 来引用 var 变量的值$var 的语法其实是花括号({})引起的变量扩展形式 ${var} 的简化版本。不过在某些情况下,必须使用花括号引起的形式以消除歧义并避免输出意外结果。

   

 

 

  六、Bash Shell其他扩展功能 

  (1)命令替换:命令替换可以将命令的调用替换为执行命令后的输出,从命令的输出中提取信息,并将其赋值给变量。我们可以使用将命令括在反引号中的形式调用替换`command`),但建议首选使用 $(command) ,因为允许嵌套的命令替换。

   

 

 

  (2)算术扩展:Bash的算术扩展可以用于执行简单的整数的算数运算,使用语法是 $[expression] ,当 $[] 括起时,算术表达式将由 Bash进行求值,然后替换为求值结果Bash将首先对括起的表达式执行变量扩展和命令替换,与命令替换一样,这里允许嵌套算术替换。算术扩展中使用的表达式里面允许使用空格字符。

   

  

 

 

 

  (3)算术表达式中常用的运算符

  a.递增递减

  i++:变量后置递增(运算后加1)

  i--: 变量后置递减(运算后减1)

  ++i:变量前置递增(运算前加1)

  --i: 变量前置递减(运算前减1)

   

 

 

  Tips

  循环语句可以在循环内使用任意类型的命令,包括其它的循环命令,这种循环叫做嵌套循环。注意,在使用嵌套循环时,我们是在迭代中使用迭代,与命令运行的次数是乘积的关系。

 

  b.其它运算符

  +:一元加法

  -:一元减法

  *:乘法

  **:求幂

  /:除法(取整)

  %:求余

  当表达式中存在多个运算符时,Bash将根据运算符的优先级,按顺序对特定的运算符进行求值。

   

 

 

  优先级:

  (1)i++ i--

  (2)++i --i

  (3)- +

  (4)**

  (5)* / %

 

  c.浮点表达式bc:

  

 

   

 

推荐阅读