shell脚本程序的编写

脚本文件的创建
以.sh为后缀名的文件,包含shell所执行命令的文件
脚本文件的第一行必须是 “#!”,称为shebang,它指明了执行这个脚本文件的解释程序的绝对路径

例1 :readme.sh
read命令:从终端读入字符串放在指定变量中,用户在终端进行输入,等到遇到换行符时,输入的内容被读入,并赋值给指定的变量
shell脚本程序的编写_第1张图片
运行脚本文件:

  1. 用bash命令新起一个进程,将脚本文件作为bash命令的参数,就会在新起的进程中运行脚本文件
    shell脚本程序的编写_第2张图片
  2. source命令(“.”)
    source命令简写为".",意为在 当前进程 中执行一个脚本文件
  • chmod命令:改变权限
    chmod a+x readme.sh
    “a”代表给所有用户,“+”代表添加,“-”代表删除,“x”代表可执行权限
    这句命令的含义是给所有用户添加readme.sh的可执行权限
    shell脚本程序的编写_第3张图片

test命令

test命令用于逻辑分支判断

字符串比较

shell脚本程序的编写_第4张图片
等号两边一定要有空格!
echo $? 查看上一命令的执行结果或返回值
在这里插入图片描述
返回值为1:与C语言相反,1表示逻辑false,0表示true
C语言中在程序执行一切正常时,会在最后 return 0 ,0 就是程序在执行结束之后返回的值,执行成功则返回0 。在本例中,test 命令发现1≠2,所以返回1 来表示条件不成立,而返回 0 代表一切正常
注意:echo $? 返回的是最近一次的执行结果,因此如果已经执行过一次echo $? ,再次执行该命令时,返回的是上一次echo $?的执行结果,而echo命令一般情况下都能执行成功,因此结果一般都为 0
shell脚本程序的编写_第5张图片

数值比较

shell脚本程序的编写_第6张图片
shell脚本程序的编写_第7张图片

文件测试比较

shell脚本程序的编写_第8张图片
shell脚本程序的编写_第9张图片

逻辑操作

shell脚本程序的编写_第10张图片
shell脚本程序的编写_第11张图片
test命令的简写:配对的 [ 和 ]
shell脚本程序的编写_第12张图片

expr命令

expr 即 expression 命令:计算表达式
注意:运算符两边必须有空格
shell脚本程序的编写_第13张图片
shell脚本程序的编写_第14张图片

条件控制语句

if

注意:1. 方括号 [ ] 2. 条件之后的“;” 3. “[”和“]”前后都要有空格
以 “fi”(反写的“if”)结束 if 语句
shell脚本程序的编写_第15张图片
shell脚本程序的编写_第16张图片
shell脚本程序的编写_第17张图片
程序的作用:如果进入目录成功,cd命令会返回0,if遇到 0 会判断为是逻辑true(与C语言相反),则会打印thenecho的语句,并且ls这个目录里的内容,如果不成功,则打印else中的echo语句,并返回1,表示该程序运行过程中有错误发生

case语句

shell脚本程序的编写_第18张图片

循环语句

for语句

shell脚本程序的编写_第19张图片
偷懒的 for 语句
把脚本文件收到的所有参数默认地作为 for 语句的循环列表
for 语句循环列表即为我们传递给 for 语句的参数
shell脚本程序的编写_第20张图片

while 语句

shell脚本程序的编写_第21张图片

until语句

shell脚本程序的编写_第22张图片

函数

因为shell中的变量没有数据类型,所以参数也没有类型,因此函数名后的“()”里内容为空
shell脚本程序的编写_第23张图片
shell脚本程序的编写_第24张图片

你可能感兴趣的:(Linux,linux,ubuntu,bash)