linux shell脚本知识点总结

    xiaoxiao2021-03-25  117

    脚本中的特殊字符

    \ :转义字符

    ``:反括号中的是先执行的命令

    “ ”:弱引用,输出变量的内容

    "" :弱引用 [root@dnsserver ~]# name=westos [root@dnsserver ~]# echo "$name" westos ‘ 强引用,和变量无关

    [root@dnsserver ~]# echo '$name' $name 引用变量的两种方法

    $变量命

    ${变量名}

    脚本中的命令

    seq命令:用于产生从某个数到另一个数之间的之间的所有整数

    语法:seq【选项】 --尾数      seq【选项】 --首数 尾数   seq【选项】 --首数 增量 尾数

    选项:         -f 使用printf样式的浮点格式         -s 使用指定字符串分隔数字         -w 在列前添加0让宽度相等 命令回传码与&&和|| 命令回传码为0时候,代表上一个命令正确执行 command1 && command2 :command1正确执行才去执行命令2,否则不执行(第一个的命令回传码是0,则执行第二个命令) command1 || command2 :command1执行错误则开始执行命令2,否则不执行(第一个命令回传码不是0,则执行第二个命令) 分析ls /tmp/abc || mkdir/tmp/abc && touch/tmp/abc/hes 假设/tmp/abs存在,则命令回传码是0,第一个命令执行成功,不执行第二条命令mkdir/tmp/abc,此时创建touch /tmp/abs/hes 假设/tmp/abs不存在,则命令回传码不是0,第一条命令执行失败,执行2,成功,执行3 总结:先与后或(与或门) ----------------- ping -w -c ip:只ping一次ip地址 --------------------- cut:用于分割一行字符 选项:         cut -d '分隔符' -f 选取第几段         cut -c 选取的字符范围 [root@dnsserver ~]# echo $PATH | cut -d ':' -f 4 /usr/bin ------------------------------ 通过一个变量修改一个用户的密码 echo 密码 | passwd --stdin 用户名 --------------------------- 判断式[]总结: 1.中括号中的每个组件都要用空格分割‘ 2.中括号的变常量,最好用双引号括起来 ,保证不会出现比较元素过多的错误  ------------------------------------------------------------------------------------------------- echo -n: echo -n 不换行输出 $echo -n "123" $echo "456" 最终输出 123456 而不是 123 456

    -e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: •\a 发出警告声; •\b 删除前一个字符; •\c 最后不加上换行符号; •\f 换行但光标仍旧停留在原来的位置; •\n 换行且光标移至行首; •\r 光标移至行首,但不换行; •\t 插入tab; •\v 与\f相同; •\\ 插入\字符; •\nnn 插入nnn(八进制)所代表的ASCII字符;

    ----------------------------------------------- 计算是否为0 [-z "$a" ] a为0 $?返回0 a非0返回非0数 ------------------------ 数字比较运算符 -eq:是否相等 -ne:不等 -lt:小于 -le:小于等于 -gt:大于 -ge:大于或者等于 ----------------------------- 文件运算比较符 -e filename :file存在则为真 -d filename -f filename -L filename :file为符号链接,则为真 -r                 :file为可读文件,则为真 -w               :file文件可写为真 -x                 :file文件可执行则为真 filename1 -nt filename2 :前新为真         -ot             后新为真

    常见的语句总结

    -------------------------------------- for ...do...done语句格式: for 变量 in 内容 do 语句段 done 例子:输出1到10之间的奇数 #!/bin/bash for in do done for num in $( seq 1 2 10) do         echo $num done --------------------------------- for do down for ( (初始值;限制值;执行步长) ) do         程序段 down --------------------------------- while [condition ] do         程序段 done 当条件成立时候,执行循环 ----------------------------- util [condition] do         程序 done 当条件不成立的时候,执行循环 -------------------- #一个条件的判断

    if [条件判断];then

    当条件判断式1成立的,进行的操作

    else

    不成进行的操作

    fi

    ---------------------------------

    对个条件的判断

    if[条件判断1] ;then

    操作1

    elif[条件判断2]

    操作2

    else

    操作3

    fi

    -------------------------------------------------------------------------------

    case ...esac语句

    case $变量名称 in

         "第一个变量内容" )

          程序段

           ;;

        “第二个变量内容”)

        程序段

         ;;

      *)

       exit 1

       ;;

    esac

    转载请注明原文地址: https://ju.6miu.com/read-25081.html

    最新回复(0)