美文网首页
shell脚本命令

shell脚本命令

作者: Sl0wDive | 来源:发表于2021-02-25 10:51 被阅读0次
    定义变量 不加 $ 符号  定义之后调用时 加 $ 符号 
    
    加{}是为了帮助解释器识别变量的边界,例如 "${qkx}name" 不加的话 $搞不懂是qkx还是qkxname.
    
    定义只读变量  readonly  eg.  qkx = 'ssss' > readonly qkx
    
    删除变量  unset
    
    shell中 三种变量
        局部变量 : 在脚本或命令中定义,仅在当前shell实例中有效。
        环境变量 : 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。
        shell变量 : shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量。
    
    单引号 双引号 
    单引号里面的内容都会原样输出 
    双引号中可以引用变量 和 转义符
    
    获取字符串长度:{# str}   string="abcd"  >  echo ${#string}  输出 4
    
    提取子字符串 : string = 'abcdef' > ${string:1:4} > 返回bcde 即相当于左闭右闭  索引从0开始 
    
    查找子字符串位置 : string = 'abcdef' > echo `expr index "$string" c` > 返回(3) 
    
    shell只支持一维数组  array = (value0,value1,value2..)
    
    读取数组: ${array[n]} n为下标
    
    获取数组中所有元素 ${array[@]}
    
    获取数组的长度 : ${# array[@]} 或者 ${# array[*]}
    
    shell注释: 以#开头 
    
    多行注释: 
        :<<EOF
        注释内容...
        注释内容...
        注释内容...
        EOF  (EOF在这里可为任意的符号)
    
    shell 传递参数  $0表示带路径的文件名  $1就指第一个参数  $#显示参数的个数  
    
    $@ S*都是显示所有参数 但二者有所不同 
    假设在脚本运行时写了三个参数 1、2、3,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。 
    

    shell 运算
    数学运算符
    关系运算符
    布尔运算符
    逻辑运算符
    字符串运算符
    文件测试运算符
    https://www.runoob.com/linux/linux-shell-basic-operators.html

    echo命令 用于字符串的输出
    显示换行 / 不换行 (使用时前面都要加上 -e 开启转义)
    echo -e "ok \n"
    echo "fine"
    上面的返回
    ok
    fine
    不换行
    echo -e "ok \c"
    echo "fine"
    上面的返回 ok fine
    将结果定向至文件: echo "qkx" > myfile
    显示命令执行的结果 加 反引号(前后都要加) 例如 echodate` 返回当前日期

    printf同样用于输出 有很多的参数 具体见 https://www.runoob.com/linux/linux-shell-printf.html

    test命令用于检测某个条件是否成立 可用于数字 字符 文字 三方面的测试
    具体见 https://www.runoob.com/linux/linux-shell-test.html

    定时运行shell脚本

    参考
    https://blog.csdn.net/liao392781/article/details/79278811?utm_medium=distribute.pc_relevant.none

    相关文章

      网友评论

          本文标题:shell脚本命令

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