zoukankan      html  css  js  c++  java
  • bash基础2.0.1

    1、判断的类型

    • 算术判断
    • 字符串判断
    • 逻辑判断
    • shell内置判断

    2、算术判断

    • [ 2 -eq 2 ]相等   ([]两边都要用空格隔开)
    • [ 2 -nq 2 ]不等
    • [ 3 -gt 1 ]大于
    • [ 3 -ge 2 ]大于等于
    • [ 3 -lt 1 ]小于
    • [ 3 -le 2 ]小于等于
    • (())也可以表示算术比较,((10>=9)),((10==10))

    3、字符串比较  

    • [ string1 = stirng2 ] 如果两个字符串相等,则结果为真
    • [ string1 != stirng2 ] 如果两个字符串不相等,则结果为真
    • [ - n"$var"]  如果字符串不为空,则结果为真
    • [ - z"$var" ] 如果字符串为空,则结果为真
    • [[ "xxxx"==x* ]]表达式中表示0或者多个字符
    • [[ xxx==x?? ]] 在表达式中表示单个字符
    • 在引用变量的时候要加上双引号,否则当变量没有定义当时候会报错

    4、内置判断

    • -e file,如果文件存在,则结果为真
    • -d file 如果文件为一个子目录,则结果为真
    • -f file,如果文件是一个普通的文件,则结果为真
    • -r file,如果文件可读,则结果为真
    • -w file,如果文件可写,则结果为真
    • -x file,如果文件可执行,则结果为真
    • -s file,如果文件长度不为零,则结果为真

    [[]] 是[]的扩展语法,在老得sh里面并不支持,推荐用[]

    5、逻辑控制

    • 条件 if
    • 分支case
    • 循环 for while until select
    • Break continue
    • 较常用的为 if for while

    6、if结构 

    • if [ condiition ];then...; fi
    • if [ condiition ];then...;else...; fi
    • if [ condiition ];then...;elif...; fi
    • 简单的逻辑可以使用&&||  去替代
    • 条件可以用命令返回值代替

    7、for循环

    • for((c1;c2;c3))
    • do
    • ...;
    • done
    • for((i=0;i<10;i++)); do echo $i ;done   所有被do执行的命令,最后都会被打印出来

    8、for遍历循环

    • 用于递归数组,还可以递归以空格隔开的字符串序列,或者某个命令的返回值
    • for f in array[*];
    • do
    • ...
    • done
    1. ss="aa bb cc dd" ; for x in $ss; do echo $x; done;
    2. for x in `ls`; do echo $x; done
    3. ss=(aa bb cc "ss ee"); for x in "${ss[@]}"; do echo $x; done;

    9、while循环

    • i=0 while[ $i -lt 3]; do echo $i;((i=i+1));done
    • 一个有用的小技巧,一行行的读取文件内容 while read line; do echo $line; done < /tmp/tmp       注意:/tmp/tmp为文件名

    10、退出控制

    • return函数返回
    • exit脚本推出
    • break退出当前循环
    • continue跳过当前的循环,进入下一次的循环
    负重前行
  • 相关阅读:
    67. Add Binary
    66. Plus One
    64. Minimum Path Sum
    63. Unique Paths II
    How to skip all the wizard pages and go directly to the installation process?
    Inno Setup打包之先卸载再安装
    How to change the header background color of a QTableView
    Openstack object list 一次最多有一万个 object
    Openstack 的 Log 在 /var/log/syslog 里 【Ubuntu】
    Git 分支
  • 原文地址:https://www.cnblogs.com/astride/p/12710809.html
Copyright © 2011-2022 走看看