初学Linux--shell

                                    Shell

    shell属弱类型编程语言。

    强弱的区分:

        强:变量在使用前,必须事先声明,甚至还需要初始

        弱:变量使用时声明,甚至部区分类型

     bash变量类型
         环境变量
         本地变量(局部变量)
         位置变量
         特殊变量 

本地变量:
     bash:
         VATNAME=VALUE:作用域为整个bash进程
局部变量:
         local varname=value;作用域为当前代码段
环境变量:作用域为当前shell进程及其子进程
     export varname=value
     name=value
     export name
      ”导出“

位置变量:
         $1,$2... 
         shift

         如:
            [root@localhost shell]# cat shift.sh
                #!/bin/bash
                echo $1
                shift
                echo $1
                shift
                echo $1
            [root@localhost shell]#
  
            [root@localhost shell]# ./shift.sh  1 2 3
                        1
                        2
                        3    
            [ root@localhost shell]#

特殊变量:
     1. $?上一个命令的执行状态返回值
             程序执行,可能有两类返回值
             程序执行结果
             程序状态返回代码(0-255)
             0:正确执行
             1-255:错误执行  1,2,127系统预留
 2. $# 参数的个数
 3. $* 参数列表
 4. $@ 参数列表

  /dev/null 软设备 bit bucket数据黑洞
撤销变量
    unset VARNAME
查看当前shell中变量
     set
查看当前shell中的环境变量
        set
        env
        export

脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序
    shebang:魔数
    #!/bin/bash
    #开头为注释行,不执行

脚本在执行时会启动一个子shell进程
     命令行中启动的脚本会继承当前shell环境变量
     系统自动执行的脚步(非命令行启动)

引用变量:作用域为当前shell进程及其子进程

     ${varname}
     name=pao;
     echo “THe hello word ${name}”,

条件判断
 如果用户不存在
  添加用户,给密码并显示添加成功
 否则
  显示如果已经存在,没有添加
bash中如何实现条件判断?
条件厕所类型
 整数测试
 字符测试
 文件测试
条件测试的表达式:
 【 expression 】
 【【expression】】
 test expression
整数比较:
 -eq:测试两个整数是否相等 如; $a -eq $b
 -ne:测试两个整数是否相等,不等为真,,相等为假
 -gt:测试一个数是否大于另一个数;大于为真,否则为假
 -lt:测试一个数是否小与另一个数;小与为真,否则为假;
 -ge:大于或等于
 -le:小于或等于
文件测试
 -e 文件 测试文件是否存在
 -f 文件 测试文件是否为普通文件
 -d 文件 测试知道路径是否为目录
 -r 文件 测试当前用户对指定文件是否有读取权限
 -w 文件 测试当前用户对指定文件是否有写权限
 -x 文件 测试当前用户对指定文件是否有可执行权限
 【 -e /etc/inittab 】

命令间的逻辑关系:
     逻辑与:&&
              第一个条件为假时,第二个条件不用在判断,最终结果已经有
              第一个条件为真时,第二条件必须要判断
 逻辑或:||

条件判断,控制结构
单分支if语句

        if  判断条件;then
             statement1
             statement2
                     ....
         fi 
 
双分支if语句
        if 判断语句;then
             statement1
             statement2
                     ....
                    else 
                             statement3
                             statement4
                        ......
          fi

多分支if语句
             if    判断条件;then
                     statement1
                         ......
                  elif    判断条件2;then
                         statement2
                                 ......
                             else 
                                 ......
                fi


测试脚本是否有语法错误
    bash -n 脚本文件
脚本单步执行
    bash -x 脚本文件
定义脚本退出状态码
        exit:退出脚本
         exit #
           如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本的退出码

shell中如何进行算术运算
     a=3
     b=6
 1. let 算术运算表达式   算术运算命令
         let =c=$a+$b
 2. $(算术运算表达式)
          d=$[$a+$b]
 3. $((算术运算表达式))
          d=$(($a+$b))
 4. expr命令 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
         c= `expr $a + $b`    注:‘  ’  为反单引号``


你可能感兴趣的:(shell,编程语言,local,Export,linux-shell)