zoukankan      html  css  js  c++  java
  • shell脚本学习笔记

    0、赋值变量时等号两边不能有空格,做运算时运算符两侧必须要有空格

    1、readonly 变量名

      将变量设置为只读变量,如:

    name="gnib"
    readonly name

    2、unset 变量名

      删除变量,如:

    name="gnib"
    unset name

    3、字符串既可以使用双引号也可以使用单引号,但是单引号有限制:

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

    4、字符串拼接

    your_name="qinjx"
    greeting="hello, "$your_name" !"#双引号外拼接
    greeting_1="hello, ${your_name} !"#双引号内拼接
    echo $greeting $greeting_1

    5、#:大括号内的‘#’字符,用于表示结算长度,例如:

    string="abcd"
    echo ${#string} #输出 4
    
    my_array=(A B "C" D)
    echo "数组元素个数为: ${#my_array[*]}" #输出4
    echo "数组元素个数为: ${#my_array[@]}"#输出4
    echo "数组单个元素的长度为: ${#my_array[0]}"#输出1
    
    #补充
    echo "数组元素个数为: ${my_array[*]}" #输出数组所有元素
    echo "数组元素个数为: ${my_array[@]}"#输出数组所有元素

     6、字符串分片(提取子串)

    string="runoob is a great site"
    echo ${string:1:4} # 表示从下标1开始,输出4个字符。输出 unoo

    7、查找子串

    string="runoob is a great company"
    echo `expr index "$string" is`  # 输出 8

    8、作乘法运算时, * 号需要转义

    val=`expr $a * $b`

    9、布尔运算符 -a -o 与逻辑运算符 || && 的使用

    a=10
    b=20
    
    if [ $a -lt 100 -o $b -gt 100 ]
    then
       echo "$a 小于 100 或 $b 大于 100 : 返回 true"
    else
       echo "$a 小于 100 或 $b 大于 100 : 返回 false"
    fi
    
    if [ $a -lt 5 -o $b -gt 100 ]
    then
       echo "$a 小于 5 或 $b 大于 100 : 返回 true"
    else
       echo "$a 小于 5 或 $b 大于 100 : 返回 false"
    fi
    
    if [[ $a -lt 100 && $b -gt 100 ]]
    then
       echo "返回 true"
    else
       echo "返回 false"
    fi
    
    if [[ $a -lt 100 || $b -gt 100 ]]
    then
       echo "返回 true"
    else
       echo "返回 false"
    fi

    10、字符串运算符

    = 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。
    != 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。
    -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。
    -n 检测字符串长度是否为0,不为0返回 true。 [ -n $a ] 返回 true。
    str 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true。
    a="abc"
    
    if [ $a ]
    then
       echo "字符串不为空"
    else
       echo "字符串为空"
    fi
    
    #字符串不为空

    11、read 命令

    read 命令一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收。

    read firstStr secondStr
    echo "第一个参数:$firstStr; 第二个参数:$secondStr"
    #输入
    一 二 三 四
    #输出
    第一个参数:一; 第二个参数:二 三 四
    
    
    read -p "请输入一段文字:" -n 6 -t 5 -s password
    echo "
    password is $password"
    #输出
    请输入一段文字:
    password is asdf
  • 相关阅读:
    MyCat分库分表-安装
    oracle 字符串格式转化 与 今天 /本周 /本月 查询
    java 接口开发时 后台无法获取前端传过来的参数值
    orace 异常 ORA-01830: 日期格式图片在转换整个输入字符串之前结束
    java json数据返回值中文乱码 出现???
    特殊的日子 2018年总结(一个人的胡言乱语)
    写在2016年的第365天,记录我的2016
    app mui框架 安卓手机app禁止截屏
    oracle 查询函数wm_concat,decode,COALESCE
    后台获取select的值,给页面添加默认值 【js】待续...
  • 原文地址:https://www.cnblogs.com/GnibChen/p/8921778.html
Copyright © 2011-2022 走看看