- 基本语法
- "$((运算式))"或"$[运算式]"或者expr m + n//expression 表达式
- 注意expr运算符间要有空格 , 如果希望将expr的结果赋给某个变量 , 使用``
- expr m - n
- expr \*,/,%乘 , 除 , 取模
- 实例
- 计算(2+3)*4的值
vim operator.sh#!bin/bash#第一种方式:RES1=$(((2+3)*4))echo "res1=$RES1"#第二种方式RES2=$[(2+3)*4]echo "res2=$RES2"#推荐使用#第三种方式TEMP=`expr 2 + 3`#注意要用空格 , 否则输出结果为 2+3RES3=`expr $TEMP \* 4`echo "temp=$TEMP"echo "res3=$RES3"
- 求出命令行的两个参数[整数]的和 20 50
SUM=$[$1+$2]echo "sum=$SUM"
然后再命令行输入./operator.sh 20 50--输出结果 sum=70
- 计算(2+3)*4的值
- 基本语法
if [ condition ] (注意condition前后要有空格)非空返回true , 可使用$?验证(0为true , >1为false)
- 示例
[ abc ]--返回true[] --返回false[ condition ] && echo ok || echo notok条件满足执行后边的语句
- 判断语句
- 常用判断条件
1)= 字符串比较 , 判断两个字符串是否相等2)两个整数的比较-lt 小于-le 小于等于-eq 等于-gt 大于-ge 大于等于-ne 不等于3)按照文件权限划分-r 有读的权限-w 有写的权限-x 有执行的权限4)按照文件类型划分-f 文件存在并且是一个常规文件-e 文件存在-d 文件存在并是一个目录
- 应用实例
vim ifdemo.sh#!bin/bash#案例1:判断"ok"是否等于"ok"if [ "ok" = "ok" ]thenecho "equal"fi#案例2:23是否大于等于22if [ 23 -ge 22 ]thenecho "大于"fi#案例3:/root/shcode/aaa.txt 判断目录中的文件是否存在if [ -f /root/shcode/aaa.txt ]thenecho "存在"fi
- 常用判断条件
多分支语句
案例:如果输入的参数大于60 , 则输出及格了 , 否则输出不及格
#!/bin/bashif [ $1 -ge 60 ]thenecho "及格了"elif [ $1 -lt 60 ]thenecho "不及格"
case语句#!/bin/bashcase $1 in"1")echo "周一";;"2")echo "周二";;"3")echo "周三";;*)echo "Other..";;esac
for语句vim testFor1.sh#!/bin/bash#基本语法1<< commentfor 变量 in 值1 值2 值3...do程序主代码donecomment#案例1:打印命令行输入的参数for i in "$*"#$*把所有的参数看成一个整体doecho "num is $i"#这里只会输出一句话donefor j in "$@"#$@把每个参数区分对待doecho "num is $j"done#基本语法2for ((初始值;循环控制条件;变量变化))do主程序代码done#案例2:从1到100的值累加显示SUM=0for ((i=1; i<=100; i++))doSUM=$[$SUM+$I]doneecho "sum=$SUM"
while语句while [ 条件判断式 ]
do
?程序
done
vim testWhile.sh#!/bin/bash#案例1:从命令行输入一个参数n , 统计1+2+..+nSUM=0i=0while [ $i -le $1 ]doSUM=$[$SUM+$i]# i自增i=$[$i+1]doneecho "结果=$SUM"
read(选项)(参数)选项:-p:指定读取值时的提示符-t:指定读取值时等待的时间(秒) , 如果没有在指定时间内输入 , 就不再等待了参数:变量:指定读取值的变量名#实例:testRead.sh#案例1:读取控制台输入一个num值#!/bin/bashread -P "请输入一个数num=" NUM1echo "你输入的num=$NUM1"#案例2:读取控制台输入一个num值 , 在10秒内输入read -t 10 -P "请输入一个数num=" NUM2echo "你输入的num=$NUM2"
- 系统函数
basename:功能为返回完整路径的最后/的部分 , 常用于获取文件名
basename [pathname] [suffix] (选项suffix为后缀,如果suffix被指定了,basename会将pathname或string的suffix去掉)basename [string] [suffix] (功能:basename命令后会删掉所有的前缀包括最后一个/字符 , 然后将字符串显示出来)#案例1:返回/home/aaa/test.txt的"test.txt"部分basename /home/aaa/test.txt--test.txtbasename /home/aaa/test.txt.tst--test
经验总结扩展阅读
- centos7系统资源限制整理
- 大数据常用的Linux命令
- 整理一些Windows桌面运维常用的命令,并且整合成脚本
- csv2ECharts,**一行命令查看数据趋势图 工具分享**
- 工作7年收集到的git命令
- cmd常用命令介绍
- 自身 如何在linux下检测IP冲突
- linux双系统启动
- 【设计模式】Java设计模式 - 命令模式
- linux系统时间设置