shell基础-表达式流程控制

shell表达式
  • shell的验证表达式
    • 表达式的表达方式
      • 方法1
        • [ 表达式 ]
      • 方法2
        • test 表达式
      • 备注
        • 表达式两边必须要有空格,表达式之间需要有空格
        • 如果结果为真返回0,结果不为真则返回其他
        • 表达式由变量和运算符构成
    • 表达式的运算符
      • shell的数字运算符
        • 表达式格式
          • [ n1 –gt n2 ]
        • 表达式参数
          • -gt              大于        
          • -lt               小于        
          • -eq             等于        
          • -ne             不等于
      • shell的字符串运算符
        • 表达式格式
          • [ n1  ==  n2 ]
          • [  -z   n1]
        • 表达式参数
          • ==            判断两个字符串是否相等        
          • !=             判断连个字符串是否不一致        
          • -z              判断字符串长度是否为0        
          • -n             判断字符串长度是否不为0
      • shell的文件运算符
        • 表达式格式
          • [ 文件运算符  文件名 ]    
        • 文件运算符
          • -f             判断输入的内容是否是一个文件            
          • -d            判断输入的内容是否是一个目录        
          • -x             判断输入的文件是否有执行权限        
          • -e            判断输入的内容表示的文件是否存在                
          • -r             判断文件是否可读                
          • -w            判断文件是否可写
  • shell逻辑表达式
    • &&        并
      • 表达式格式       
        • 命令白表达式1 && 命令表达式2       
      • 效果
        • 如果命令1执行成功,则执行命令2                
        • 如果命令1执行失败,则不执行命令2    
    •  ||        或            
      • 表达式格式
        • 命令1 || 命令2            
      • 效果
        • 如果命令1执行成功,则不执行命令2                
        • 如果命令1执行不成功,则执行命令2        
python的流程控制
  • shell流程控制的分类
    • 简单的流程控制
      • 选择流程
        • if语句
          • 单if语句   双if语句    多if语句
        • case语句
      • 循环流程
        • for循环
        • while循环
        • until循环
    • 复杂的流程控制
      • 函数
  • shell中流程控制规则
    • 缩进
      • shell中的缩进没有作用,只是为了好看
    • 符号成对写
      •  [ ]   ( )   { }
    • 流程控制语句一定要先写完
  • 选择流程控制语句
    • if语句
      • 单if语句写法
        • if         条件语句;
        • then
          • 执行语句
        • fi
      • 双if语句
        • if          条件语句1 ;
        • then
          • 执行语句1
        • else
          • 执行语句2
        • fi
      • 多if语句
        • if          条件语句1;
        • then
          • 执行语句1
        • elif      条件语句2;
        • then
          • 执行语句2
        • else
          • 执行语句3
        • fi
    • case语句
      • case语句写法
        • case  值  in                
          • 值1)                    
            • 执行语句1                    
            • ;;               
          •  值2)                    
            • 执行语句2                    
            • ;;                
          • 值3)                    
            • 执行语句3                    
            • ;;            
        • esac
  • 循环控制语句
    • for循环语句
      • for      条件表达式;
      • do
        • 执行语句
      • done
    • while循环
      • while   条件表达式;
      • do
        • 执行语句
      • done
    • until循环语句
      • 使用方法
        • until    条件表达式;
        • do
          • 执行语句
        • done
      • until语句的特点
        • 当条件不成立时,执行循环,一旦条件成立则结束循环
  • 函数
    • 函数的使用场景
      • 不带参数的函数,应用在重复功能封装的情况下
      • 带参数的函数,应用在条件判断执行的情况下
    • 定义函数
      • func_name(){
        • args=$n         (不写此行代表函数不需要接受参数)
        • 函数体
      • }
    • 调用函数
      • func_name args1 args2
将shell脚本设置为系统环境变量的方法
  • 1、直接在命令行中设置PATH
    • # PATH=$PATH:/usr/local/apache/bin
    • 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效。
  • 2、在profile中设置PATH
    • # vi /etc/profile
    • 找到export行,在下面新增加一行,内容为:export PATH=$PATH:/usr/local/apache/bin。
    • 注:= 等号两边不能有任何空格。这种方法最好,除非手动强制修改PATH的值,否则将不会被改变。
    • 编辑/etc/profile后PATH的修改不会立马生效,如果需要立即生效的话,可以执行# source profile命令。
  • 3、在当前用户的profile中设置PATH
    • # vi ~/.bash_profile
    • 修改PATH行,把/usr/local/apache/bin添加进去,如:PATH=\$PATH:$HOME/bin:/usr/local/apache/bin。
    • # source ~/.bash_profile
    • 让这次的修改生效。
    • 注:这种方法只对当前用户起作用的,其他用户该修改无效。

刘小恺(Kyle) wechat
如有疑问可联系博主