美文网首页
Linux第二天(Shell)

Linux第二天(Shell)

作者: 宝宝跟你们拼啦 | 来源:发表于2019-08-07 23:16 被阅读0次

    1、什么是Shell脚本?

        shell就是指一种应用程序,这个应用程序提供了一个界面,用户通过这      个界面访问操作系统内核的服务

    2、第一个Shell脚本

        在某个目录下创建一个文件(Shell脚本通常以sh结尾)demo.sh

        输入命令“vim demo.sh”进入编辑模式,(#!是一个约定的标记,它告诉系统这个脚本需要什么解释器                                                             来执行,即使用哪一种 Shell、、echo 命令用于向窗口输出文本)

        回到上一层目录,执行命令“chmod +x ./demo.sh” ----》./demo.sh---->输出内部的内容

    3、Shell变量 

        Shell定义变量时,变量名不能加美元符号($),

        变量定义规则:

            命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

            中间不能有空格,可以使用下划线(_)。

            不能使用标点符号。

            不能使用bash里的关键字(可用help命令查看保留关键字)。

        使用变量:

            使用一个定义过的变量,只要在变量名前面加$即可

       只读变量:

           使用readonly命令可以将变量定义为只读变量,只读变量的值不能改变,报错,改不了

    删除变量:

        使用unset命令可以删除变量 。unset 命令不能删除只读变量。

    4、Shell字符串

    Shell中字符串可用双引号也可以用单引号

    单引号:str='hello world'

    双引号:str="hello world"

    区别:单引号限制:

         1、单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

         2、单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串 拼接使用。    

            双引号优点:双引号里可以有变量、、、双引号里可以出现转义字符

    5、Shell传递参数

        我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,1 为执行          脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

        sehll传递参数里面的特殊字符

    $* 与 $@ 区别:

        相同点:都是引用所有参数。

        不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传                    递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

    6、Shell数组

        数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小

          与大部分编程语言类似,数组元素的下标由0开始。Shell 数组用括号来表示,元素用"空格"符号分割开,语        法格式如下:array_name=(value1 ... valuen)

    定义数组:my_array=(val1 val2 。。 valn)

    也可以使用下标定义数组:my_array[0]=val1        my_array[1]=val2

    读取数组元素元素:${my_array[index]}

    获取数组中的所有元素:${my_array[*]}或者${my_array[@]}

    获取数组的长度:${#my_array[*]}或者${#my_array[@]}

    数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

    与大部分编程语言类似,数组元素的下标由0开始。

    Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

    my_array=(arr1 arr2 arr3 .... arrn)

    7、Shell运算符

    算数运算符:不是单引号,是Esc下的案件,2 + 2之间一定要有空格  val=不能有空格

    关系运算符:关系运算符只支持数字,不支持字符串,除非字符串的值是数字

    布尔运算符:

    逻辑运算符:

    字符串运算符:

    8/

    8、Shell流程控制    

        if...else....

        if condition

        then 

             command1

              command2

        ...    commandN

        else

            command

    fi

    相关文章

      网友评论

          本文标题:Linux第二天(Shell)

          本文链接:https://www.haomeiwen.com/subject/iwyndctx.html