简单shell脚本编程入门

简单的shell编程入门:

步骤一:
编写一个简单的shell程序:
在这里插入图片描述
在这里插入图片描述
Shell编程开头标准写法(固定的),设定Shell解释器

步骤二:
添加可执行权限
在这里插入图片描述
也可以不添加权限(使用sh + 脚本名称)【不推荐这种方式】

步骤三:
执行脚本(可以使用相对路径,也可以使用绝对路径)
在这里插入图片描述
不添加执行权限的脚本,执行方式:
在这里插入图片描述
可以看到现在是没有执行权限的,【sh + 脚本名称】

Shell变量

变量分为系统变量自定义变量
变量的调用:$【变量名】
实例:调用查看部分系统变量
在这里插入图片描述
下面进行自定义变量:自定义变量有一下规则:
1.变量名不能以数字开头
2.等号两边不能有空格
3.变量名一般大写

实例:自定义变量与调用
在这里插入图片描述
在这里插入图片描述
变量的注销:unset 【变量名】 (这里注销的是变量B)
在这里插入图片描述
在这里插入图片描述
可以看到变量B已经被注销了。

设定静态变量(区别不可注销):readonly 【变量名】
在这里插入图片描述
在这里插入图片描述
不可注销变量:
在这里插入图片描述
在这里插入图片描述
可以看到无法注销变量

将命令的输出赋值给自定义变量
方式一:$(命令行)
在这里插入图片描述
输出
在这里插入图片描述
方式二:使用反引号``
在这里插入图片描述
输出:
在这里插入图片描述

设置环境变量(全局可用)

1.自定义设定一个环境变量TOMECAT_HOME
语法:export 自定义的环境变量
在这里插入图片描述
2.需要刷新一下配置文件:source /etc/profile
在这里插入图片描述
3.下面就可以输出查看一下自定义的环境变量了:echo $环境变量
在这里插入图片描述
4.在其他shell脚本使用自定义的环境变量
在这里插入图片描述
在这里插入图片描述

位置参数

语法:
$n	第几个参数
$*	后面自己输入的参数(看成一个整体)
$@	后面自己输入的参数(看成是分开的)
$#	自己输入参数的个数
在这里插入图片描述
在这里插入图片描述

Shell预变量

$$	当前进程的进程号
$!	输出最后一个进程号
$?	当前进程的执行状态值(0表示执行成功)

在这里插入图片描述
输出的结果
在这里插入图片描述

Shell运算符

语法
1.方式一:$((写运算))
在这里插入图片描述
在这里插入图片描述

2.方式二:$[ ] (一般使用这种方式)
在这里插入图片描述
在这里插入图片描述
3.方式三:expr A + B (* 乘 ,\ 除 ,% 取余)
注:运算符之间要有空格
在这里插入图片描述
在这里插入图片描述
实例:输入两个参数进行求和
在这里插入图片描述
在这里插入图片描述

条件判断语句

条件判断主要分为以下几种形式。【条件两边要有空格】
1.字符串判断:符号 =
在这里插入图片描述
输出
在这里插入图片描述

2.数值判断
-lt	小于
-le	小于等于
-eq	等于
-gt	大于
-ge	大于等于

1)判断23大于22
在这里插入图片描述
输出
在这里插入图片描述
2)判断21小于22
在这里插入图片描述
输出
在这里插入图片描述
3.文件类型以及文件判断是否存在
-f	文件为普通文件,并且以及存在
-e	文件已经存在
-d	文件存在是一个目录

1)判断文件aaa.txt是否存在
在这里插入图片描述
输出
在这里插入图片描述

流程控制语句

语法:
If【 condition 】
then
程序
elif 【 condition 】
then
程序
fi

实例:编写一个程序如果分数大于60,输出及格了,否则输出不及格
在这里插入图片描述
输出
在这里插入图片描述

Case流程控制(主要运用与具体值情况)

语法:
*case 变量值 in
‘值1’)
程序
;;
‘值2’)
程序
;;
)
程序
;;
esac

如果输入参数为1,返回’周一’,输入2,返回’周二’,输入其他返回’other’
在这里插入图片描述

输出
在这里插入图片描述

流程控制语句:for循环

方式一:
语法:
for 变量 in 变量
do
程序
done

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

方式二:
语法:
for ((初始值;结束条件;变化量))
do
程序
Done

实例:求1~100的累加值:
在这里插入图片描述
在这里插入图片描述

流程控制语句:while

语法:
while [ 条件 ]
do
程序
done

实例:求1+…+输入参数,的和
在这里插入图片描述

输出
在这里插入图片描述
Shell读取控制台输入:read
-p	输出提示输入的语句
-t	设置等待输入的时间,超时将不在等待
在这里插入图片描述

等待10秒未输入的话,就会自动跳过结束。
函数
1.系统函数
1)获取文件名,语法basename 【目录文件】

实例一:获取文件名并保存文件后缀
在这里插入图片描述

实例二:获取文件名不保留后缀

红框表示不保留的部分
在这里插入图片描述
在这里插入图片描述

2.自定义函数

语法:
function 【自定义函数名()】{
程序
[result 返回值]
}

注:这里的自定义函数参数是不需要形参的

实例:自定义一个求和函数,求输入两个数的和。
在这里插入图片描述
输出结果:
在这里插入图片描述
下面使用result传出返回值 【这个使用$?接受返回值,如果有返回值则返回返回值,如果没有返回值,但执行成功返回0,若不成功则可能返回别的返回值。所以有时不知道是执行成功的返回值还是报错生成的返回值】
在这里插入图片描述

可以看到这里使用了$?接收了返沪值
输出结果为:
在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭团爱吃饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值