Shell脚本编程

脚本:本质是一个文件,文件里面存放的是特定格式的指令,系统可以使用脚本解析器,翻译或解析指令并执行
解释型:需要解释器,效率低
编译型:需要编译链接生成可执行程序,效率高
为什么使用shell编程
使用shell进行程序设计的原因之一是,你可以快速、简单地完成编程。
脚本标量的特殊用法
" " (双引号):包含的变量会被解释
’’(单引号):包含的变量会当做字符串解释
``(反引号):反引号中的内容作为系统命令,并执行其内容,可以替换输出为一个变量

1、变量
定义变量:
变量名=变量值
例如:num=10 (“=”左右两边不能有空格)
unset : 清除变量值
从键盘获取值:read
在一行上显示和添加提示 要加-p
导出环境变量 作用:(让其他shell脚本识别该变量,设为全局变量)
source 脚本文件
作用:在当前bash环境下读取并执行脚本文件中的命令。
该命令常用 “.” 来代替。

2、字符串比较

字符串比较 结果
string1 = string2 如果两个字符串相同则结果为真
string1 != string2 如果两个字符串不同则结果为真
-n string 如果字符串不为空则结果为真
-z string 如果字符串为空则结果为真

3、算术比较

算术比较 结果
expression1 -eq expression2 如果两个表达式相等则结果为真
expression1 -ne expression2 如果两个表达式不等则结果为真
expression1 -gt expression2 如果expression1大于expression2则结果为真
expression1 -ge expression2 如果expression1大于等于expression2则结果为真
expression1 -lt expression2 如果expression1小于expression2则结果为真
expression1 -le expression2 如果expression1小于等于expression2则结果为真

4、文件条件测试

文件条件测试 结果
-d file 如果文件是一个目录则结果为真
-f file 如果文件是一个普通文件则结果为真
-r file 如果文件可读则结果为真
-w file 如果文件可写则结果为真
-x file 如果文件可执行则结果为真

5、if控制语句
格式:
if [ 条件1 ]
then
执行第一段程序
elif [ 条件2 ]
then
执行第二段程序
else
执行第三段程序
fi
6、for循环语句
例1:
Shell脚本编程_第1张图片

结果:在这里插入图片描述
例2:
Shell脚本编程_第2张图片
结果:
在这里插入图片描述
例3:扫描当前文件
Shell脚本编程_第3张图片
结果:
Shell脚本编程_第4张图片

7、while循环语句
当condition成立时进入循环,直到condition不成立退出循环
例1:
Shell脚本编程_第5张图片
结果:
Shell脚本编程_第6张图片
例2:从键盘输入密码有三次机会,成功则返回登陆成功,否则返回password err
Shell脚本编程_第7张图片
结果:
Shell脚本编程_第8张图片
8、until循环语句
这种方式与while恰恰相反,当condition成立时退出循环,否则继续循环
例1:找到文件file.txt就退出,否则没隔两秒打印not file.txt
Shell脚本编程_第9张图片
7、case语句
格式:
case variable in
pattern | pattern…) statements;;

esac
注意每个模式都以双分号(;;)结尾。因为你可以在前后模式之间放置多条语句,所以需要使用一个双分号来标记前一个语句的结束和后一个模式的开始。
例:
Shell脚本编程_第10张图片

8、函数
所有函数在使用前必须定义,必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用
Shell脚本编程_第11张图片
结果:
在这里插入图片描述
9、在一个脚本调用另外一个脚本
在两个脚本中传参:
a.sh
Shell脚本编程_第12张图片
b.sh
Shell脚本编程_第13张图片
./a.sh结果:
Shell脚本编程_第14张图片
10、C程序调用脚本
例:
Shell脚本编程_第15张图片
Shell脚本编程_第16张图片
结果:
Shell脚本编程_第17张图片

你可能感兴趣的:(shell)