shell脚本编程基础篇——语法和应用

条件测试test 和[
条件测试中成功返回0,失败返回-1
可以比较两个数的大小,也可以用来比较字符串。
!,-a,-o,分别为非,与,或三个逻辑运算

两个数比较大小
shell脚本编程基础篇——语法和应用_第1张图片
shell脚本编程基础篇——语法和应用_第2张图片
字符串比较
这里写图片描述
这里写图片描述
文件存在与操作
这里写图片描述
这里写图片描述
判断文件是否存在
这里写图片描述
这里写图片描述

循环while for
1、for语句
for有两种写法:
第一种:for i in {a..z}
这里写图片描述
shell脚本编程基础篇——语法和应用_第3张图片
第二种:for ((i=0;i<100;i++))(与c语言类似)
这里写图片描述
shell脚本编程基础篇——语法和应用_第4张图片
2、while语句
shell脚本编程基础篇——语法和应用_第5张图片
shell脚本编程基础篇——语法和应用_第6张图片
函数
shell中的函数和c语言中的类似,只是没有返回值和参数列表,但不代表不能传参,我们通过在调用函数时后面加上参数来传参,在函数内部通过$1.$2,$3…来表示,函数中可以return返回,如果返回一个值,则代表函数的Exit Status,在函数调用后通过$?来访问。事实上,函数就像是一个迷你脚本。
shell脚本编程基础篇——语法和应用_第7张图片
这里写图片描述
case/esac语句
case语句相当于与c语言中的case/switch语句,只是写法不同,看下面这段代码就明白了两者的区别。
shell脚本编程基础篇——语法和应用_第8张图片
shell脚本编程基础篇——语法和应用_第9张图片

比较if/then/elif/else/fi
和c中的类似,只是写法有讲究,给个例子就懂了
shell脚本编程基础篇——语法和应用_第10张图片
shell脚本编程基础篇——语法和应用_第11张图片
有时候也会使用&&和||操作,&&相当于if…then,而||相当于if not….then。
shell脚本编程基础篇——语法和应用_第12张图片
这里写图片描述
上面只是两种判断的两种写法,等价但是却有区别。
位置参数和特殊变量

$0

相当于C语⾔言main函数的argv[0]

$1$2...

这些称为位置参数(Positional Parameter),相当于C语⾔言main函数 的argv[1]、argv[2]…

$#

相当于C语⾔言main函数的argc - 1,注意这⾥里的#后⾯面不表⽰$@参数列表"$1" "$2" …,例如可以⽤用在for循环中的in后⾯面。

$?

上⼀一条命令的Exit Status

$$

当前Shell的进程号
位置参数可以⽤用shift命令左移。⽐比如shift 3表⽰示原来的$4现在变成$1,原来的$5现在变成$2
等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。
shell脚本编程基础篇——语法和应用_第13张图片
shell脚本编程基础篇——语法和应用_第14张图片

shell下一个简单的进度条
shell脚本编程基础篇——语法和应用_第15张图片
这里写图片描述
shell下求数组最大,最小,平均值(保存两位小数)
shell脚本编程基础篇——语法和应用_第16张图片
shell脚本编程基础篇——语法和应用_第17张图片

你可能感兴趣的:(Linux)