一 . 单引号和双引号

    1.单引号和双引号两者之间的作用和区别:

       

       单引号('') : 单引号中的所有字符均作为普通字符处理 , 即原样输出 , 无法调用变量的值 .

       双引号("") : 双引号中会自动识别特殊字符 , 即调用变量的值 , 如$ ,\n换行符 , \t tab键等特殊字符 .

       实例说明: 赋值给变量 x 一个值 , 分别输出 '$x'"$x"

       image.png

       再举个例子说明: 分别在命令行中输入: echo  -e  '${x}_\n_welcome_to\t_51cto'  和  echo -e "${x}_\n_welcome_to\t_51cto"

       image.png

       说明 : echo 的 -e 选项是允许识别\n换行符 ,  \t tab键 , \r回车符等特殊字符 , ${x}通常等于$x , 那么什么时候需要将变量名用{}括起来呢?

          答 : 当变量名后面紧贴着其他字符时 , 为了避免歧义 , 就需要将变量名用{}括起来


 二 . shell的函数功能和定义

     1. 函数功能 : 完成特定功能的代码块(段)

         在shell中定义函数可以使用代码模块化 ,便于复用(重复使用)代码 , 函数必须先定义才可以使用

     2. 函数的定义 : 

         方法一:

         函数名(){

               函数要实现的功能代码

         }

         方法二:

         function  函数名{

               函数要实现的功能代码

         }

       通过 function , network 服务控制脚本可以看到其中内容 , 其中就有函数 , 比如cat  -n  /etc/rc.d/init.d/functions | more 查看:

        image.png

        

       通过介绍下面的 case 命令后 ,可以举例说明函数作用及用法 ...


  三 . case 命令介绍

 

     1. 功能定义 : 根据变量的取值不同 , 执行不同的操作命令

     2. 语法格式 :

          

         case  $变量名  in

         值一)

               要实现功能的代码  ;;

         值二)

               要实现功能的代码  ;;

         值三)

               要实现功能的代码  ;;

         ....

         值n)

               要实现功能的代码  ;;

         esac

       实例: 编写一个名称为/sh/install.sh 的脚本 , 要求显示一个主菜单界面 , 提示用户输入选项 , 回车后确认执行指定选项的命令操作:

       方法一 : vim  /sh/install.sh 输入以下内容 :

                   image.png

                   使用 bash  /sh/install.sh运行脚本后 ,会显示一个菜单 , 输入对应的编号 , 即会出现相应的命令

                   image.png

       方法二 : 使用函数定义 , 并调用函数

                   image.png

                   上图中定一了一个名为_NFS , 作用是检测安装nfs服务的函数 , 再在case命令值一中 , 调用_NFS函数 , wq出去后运行 , 输入编号 1 , 即可安装nfs服务

                   image.png

                   以上就是关于case命令和shell函数的使用  !!

      

         spacer.gif