004 shell脚本编程2 shell中的ifelse shell中的循环 casein continue break shell中的方法 shell中的文件引入 shell中脚本的调试

本文围绕Shell脚本展开,介绍了if-else语句的正确写法,如if后需跟then,结束用fi,多条件用elif;还阐述了while、for等循环的使用,以及方法的定义、调用、带返回值和参数的情况。此外,讲解了文件引入方式,类似Java的import,最后介绍了多种调试方法,如sh -n、sh -x等。

在这里插入图片描述
截图上也说了
要写成一行 要用分号来分隔的
在这里插入图片描述
在这里插入图片描述
写if 结束必须有fi反制
写if 必须跟着then

单一的一个if then else
else后面不能有then

要是多个条件
if then
elif
then
else
fi

没有else if 只有 elif 后面必须跟then
else 后面不能跟then
在这里插入图片描述
在这里插入图片描述

循环
while for util
在这里插入图片描述
for例子
在这里插入图片描述

seq 1 20 虚拟化增长 1到20
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后再写个这个
在这里插入图片描述
运行 哦 前边的也运行了 所以打印了东西
第二个函数没打印出东西
在这里插入图片描述
但是
我们查看当前目录
即 /home/shell
第二个函数创建了好多东西
在这里插入图片描述

然后我们看while
while后面的括号要写两组括号
然后 while(())
do

done
然后shell里面没有i++
要实现i增加
使用expr
i=反引号expr $i + 1w反引号
或者
使用工具
比如 let “i++”
这样就可以使用i++了

在这里插入图片描述
在这里插入图片描述
别忘了赋予权限
在这里插入图片描述


然后case
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子 case
在这里插入图片描述

在这里插入图片描述


shell中的方法
在这里插入图片描述
例子:
单纯的定义方法和调用方法 只打印一句话
在这里插入图片描述
在这里插入图片描述
带返回值的例子
在这里插入图片描述
在这里插入图片描述
这是视频写的 好像前面不加function也行…
在这里插入图片描述
3.带参数的例子

dollar符后面跟1表示取第一个参数
取第几个参数 dollar符后面就跟几
还有$ * 也是代表取所有参数 (两个之间没空格)
$0 就取到文件的名字了

注意取字符串长度和数组长度都和井号#有关.

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意这个 第一个结果是10 不正确
第二个结果是900 正确
为什么这样
当参数的个数大于等于两位数时 取第几个参数值时需要加上花括号 才能取到 不然就会打印出来它本身

还有一个例子
在这里插入图片描述

在这里插入图片描述


所以注意这几个符号
在这里插入图片描述
@和*是一个效果


九 文件引入

跟java中的import差不多
在这里插入图片描述
在这里插入图片描述

例子
先写个1.sh

1.sh只是引用 所以不用给它可执行权限
然后再写个2.sh

第一种引入方式 使用source加文件绝对路径
在这里插入图片描述
在这里插入图片描述
第二种方式 点加文件路径
在这里插入图片描述
结果是一样的
在这里插入图片描述


十 shell的调试

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
例子·1.使用sh -n
写个for循环 没有写do
在这里插入图片描述
检测 报错
在这里插入图片描述
在这里插入图片描述
修改后再执行 可以了.

在这里插入图片描述

我们进行普通的调试 使用sh -x
在这里插入图片描述
显示的是所有步骤
这样一步就全显示了 不能交互式调试
所以我们使用第三种 中断调试
加一句 sleep 2 睡眠2秒
在这里插入图片描述
这样在睡眠的时候 停在某一步 我们可以ctrl z 停止 想要继续 输入fg 回车继续
在这里插入图片描述


使用工具bashdb
我们写个例子
在这里插入图片描述
先打印下看看
在这里插入图片描述
然后我们因为没有配置环境变量
所以需要到bashdb工具目录下进行调试
就是不能直接使用该命令
所以
我们先进入该目录cd /usr/local/bashdb-4.4-1.0.1/ 使用tab进行补全
使用该命令 对bs shell文件进行调试
./bashdb --debugger /home/shell/bs.sh

在这里插入图片描述
这样就进来了
然后我们看下常用命令

在这里插入图片描述
我们打个l 表示列出上下5行 共10行
在这里插入图片描述
注意此截图 那个箭头 表示执行到了第三行
n 执行下一条语句
在这里插入图片描述
我们再第7行设置断点 b 7告诉我们成功设置
在这里插入图片描述
我们按c继续运行 没有告诉它运行到第几行 所以它直接运行到了断点的第7行
在这里插入图片描述
我们想知道此时i的值 使用print打印
print $i
在这里插入图片描述
我们打印下断点的变量
没打印出来
因为此时还在断点那一句 没执行完
n执行下一句
所以再打印一次 出来了

在这里插入图片描述
然后再去n n c …执行看看
在这里插入图片描述
有断点的时候finish会先执行到断点
结束退出按q
在这里插入图片描述


练习
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值