美文网首页
93.读鸟哥私房菜4|学习shell脚本3

93.读鸟哥私房菜4|学习shell脚本3

作者: 人生玩家Eli | 来源:发表于2022-11-15 22:08 被阅读0次
    cover20220907.png

    利用test指令的测试功能

    • 判断文件或文件夹是否存在:test -e ./eli && echo "Exist" || echo "Not exist"
    • 判断是否存在该文件:test -f ./eli && echo "Exist" || echo "Not exist"
    • 判断是否存在该文件夹:test -d ./eli && echo "Exist" || echo "Not exist"
    • 判断该文件(夹)是否具有可读权限:test -r ./eli && echo "Exist" || echo "Not exist"
    • 判断该文件(夹)是否具有可写权限:test -w ./eli && echo "Exist" || echo "Not exist"
    • 判断该文件(夹)是否具有可执行权限:test -x ./eli && echo "Exist" || echo "Not exist"
    • 判断字符串/变量是不是空串or空值,是的话,则为true,反之为false:test -z "" && echo "true" || echo "false"
    • 判断字符串/变量是不是空串or空值,是的话,则为false,反之为true(-n可省略):test -n "" && echo "true" || echo "false"

    写个例子

    #!/bin/bash
    
    read -p "输入文件名 : " filename
    
    # 判断文件名是否为空串
    test -z ${filename} && echo "你需要输入一个名称." && exit 0
    
    # 判断文件是否存在
    test ! -e ${filename} && echo "文件 '${filename}' 不存在" && exit 0
    
    # 判断是文件夹,还是文件
    test -f ${filename} && filetype="文件"
    test -d ${filename} && filetype="文件夹"
    
    # 判断权限
    test -r ${filename} && perm="可读"
    test -w ${filename} && perm="${perm} 可写"
    test -x ${filename} && perm="${perm} 可执行"
    
    # 输出结果
    echo "该名称: ${filename} 是一个 ${filetype}"
    echo "权限如下: : ${perm}"
    

    利用判断符号[]

    使用中括号也可以判断变量是否为空或空串

    常用于if语句

    • [ -z "eli" ] ; echo $? 用法与test命令类似
    • [ '${name}' = "eli" ] ; echo $?
      • 注意1:中括号里有4个空格,不能少。
      • 注意2:变量要用单引号引起来,字符串用双引号

    写个例子

    #!/bin/bash
    
    read -p "请输入 (Y/N): " yn
    # 使用-o表示"或"
    [ "${yn}" == "Y" -o "${yn}" == "y" ] && echo "OK!" && exit 0
    [ "${yn}" == "N" -o "${yn}" == "n" ] && echo "No!" && exit 0
    echo "输入错误。" && exit 0
    

    相关文章

      网友评论

          本文标题:93.读鸟哥私房菜4|学习shell脚本3

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