Linux--shell脚本编程之符号篇

      shell的作用是解释执行用户的命令,用户输入一条命令shell就解释执行一条,这种方式成为交互式shell;shell还有一种执行命令的方式称为批处理,即用户事先编写好一个shell脚本(script),其中有很多条命令,让shell一次性执行这些命令。今天我们重点说的就是这种批处理shell。

       >shell脚本文件名以.sh结尾,文件以第一行  #!/bin/bash   表示脚本后面指定的解释器是 /bin/bash

       >shell文件执行方法:chmod  u+x  文件名      修改文件可执行权限

                                          ./文件名                        直接运行文件

       >shell文件的执行原理:创建子shell,由子shell执行当前命令,但有部分命令除外,例如cd..   这种命令称为shell的内建命令,这种命令不会fork子进程而是由自己执行命令。

          $source ./script.sh

          $ . ./script.sh

         source 和 . 命令也是shell的内建命令,这种方式也不会创建子进程而是直接在交互式shell下逐行执行脚本中的命令。

       >shell变量:环境变量和本地变量

         环境变量:可以从父进程传递给子进程

         本地变量:只存在于当前shell,使用set可以显示当前shell的所有变量和函数。

         定义变量等号两边不能有空格:VARNAME=value

         使用export可以导出环境变量

       >变量引用:如果一个变量叫做VARNAME,使用${VARNAME}可以表示他的值,也可以不加花括号,加上花括号是可以用来进行字符串拼接:假设value=b;   ${VARNAME}aaa    输出:baaa

       >文件名代换:

         通配符: *  匹配0个或者多个任意字符

                        ?匹配一个任意字符

                        [若干字符]      匹配方括号中任意一个字符的一次出现

       >命令代换:

                         ` `或者$()

                        由反引号括起来的也是一条命令,shell先执行该命令,然后将输出结果立刻代换到当前命令行中

                        $ DATE='date'

                        $echo  $DATE

                        也可以  $DATE=$(date)

                        算数运算$(( ))               $echo $(($date+3))           只能计算整数

            区别:` `    反引号本身对 \ 有转义的作用,所以如果要使用 \的话就需要 \\

                      $()    没有对 \进行转义  \ 还是 \

        >转义字符 \

                      作用:用于去除紧跟其后的单个字符的特殊意义(回车除外),即紧跟其后的字符取字面值

        eg:

                       $ touch \$\ \$         创建一个名字为$ $的文件

        >单引号  ‘ ’:字符串

                      作用:保持引号内所有字符的字面值

        >双引号  “ ”:字符串

                      作用:保持引号内所有字符的字面值,但有些字符例外

                       比如:

                                 $加变量名可以取变量的值

                                 `` 仍表示命令替换

                                 \$表示$的字面值

                                 \`表示`的字面值(单引号

                                 \"表示"的字面值

                                 \\表示\的字面值

                        










你可能感兴趣的:(Linux语言)