1 、运算符
(比较麻烦的写法)
1、基本语法
“运算式或((运算式))”或‘“[运算式]”
2、案例实操
eg.计算(2+3)*4的值
相加脚本
2 、条件判断
1、基本语法
(1)test condition
(2)[ condition ] (注意condition前后要有空格)
注意:条件非空即为true,[zhm]返回true,[ ]返回false
echo $?如果正确返回0,如果错误返回1
注意空格
2、常用判断条件
(1)两个整数之间比较
说明:如果是字符串之间的比较,用等号“=”判断相等;用“!=”判断不等。
(2)按照文件权限进行判断
(4)多条件判断(&&表示前一条命令执行成功时,才执行后一条命令,||表示上一条命令执行失败2后,才执行下一条命令)
3 、流程控制
注意:
(1)[ 条件判断式 ],中括号和条件判断式之间必须要有空格。
(2)if后面要有空格。
3.1 if判断
1、基本语法
(1)单分支
或
脚本
注意:&&可以写成-a || -o
(2)多分支
结果:
案例实操
输入一个年龄数字参数,判断这个年龄属于哪种人。
#!/bin/bash if [ $# -ne 1 ] then echo '请输入一个数字参数' exit fi if [ $1 -lt 18 ] then echo '未成年' elif [ $1 -lt 40 ] then echo '青年人' elif [ $1 -lt 60 ] then echo '中年人' else echo '老年人' fi
3.2 case语句
1、基本语法
注意:
(1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2)双分号“;;”表示命令序列结束,相当于java中的break。
(3)最后的“)”表示默认模式,相当于java中的default。
case $变量名 in "值1") 如果变量的值等于值1,则执行程序1 ;; "值2") 如果变量的值等于值2,则执行程序2 ;; ...省略其他分支... *) 如果变量的值都不是以上的值,则执行此程序 ;; esac
#!/bin/bash case $1 in 1) echo "one" ;; 2) echo "two" ;; 3) echo "three" ;; *) echo "number else" ;; esac
3.3 for循环
1、基本语法
for((初始值;循环控制条件;变量变化)) do 程序 done
2、案例实操
#!/bin/bash sum=0 for ((i=0;i<=100;i++)) do sum=$[$sum+$i] done echo $sum
3、基本语法2
for 变量 in 值1 值2 值3 do 程序 done
代码:for os in linux window macos; do echo $os; done
代码:for i in {1..100}; do sum=$[$sum+$i]; done; echo $sum
4、案例实操
(1)打印所有参数
#!/bin/bash for i in monther father you do echo "$i都是家人" done
(2)比较$*和$@的区别
(没有加"")
#!/bin/bash echo '==========$*==========' for i in $* do echo $i done echo '==========$@==========' for i in $@ do echo $i done
(加了"")
#!/bin/bash echo '==========$*==========' for i in "$*" do echo $i done echo '==========$@==========' for i in "$@" do echo $i done
注意:
(1)$*和$@都表示传递给函数或脚本的所有参数,不被双引号"“包含时,都以$1,$2,$3…$n的形式输出所有参数。
(2)当它们被双引号”"包含时,$*会将所有的参数作为一个整体,以“$1,$2,$3…$n”形式输出;而$@会将各个参数分开,以“$1”,“$2”…“$n”的形式输出所有参数。
3.4 while循环
1、基本语法
while [ 条件判断式 ] do 程序 done
从1加到100
第一种写法:
第二种写法: