简单的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脚本使用自定义的环境变量
位置参数
语法:
Shell预变量
输出的结果
Shell运算符
语法
1.方式一:$((写运算))
2.方式二:$[ ] (一般使用这种方式)
3.方式三:expr A + B (* 乘 ,\ 除 ,% 取余)
注:运算符之间要有空格
实例:输入两个参数进行求和
条件判断语句
条件判断主要分为以下几种形式。【条件两边要有空格】
1.字符串判断:符号 =
输出
2.数值判断
1)判断23大于22
输出
2)判断21小于22
输出
3.文件类型以及文件判断是否存在
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
等待10秒未输入的话,就会自动跳过结束。
函数
1.系统函数
1)获取文件名,语法basename 【目录文件】
实例一:获取文件名并保存文件后缀
实例二:获取文件名不保留后缀
红框表示不保留的部分
2.自定义函数
语法:
function 【自定义函数名()】{
程序
[result 返回值]
}
注:这里的自定义函数参数是不需要形参的
实例:自定义一个求和函数,求输入两个数的和。
输出结果:
下面使用result传出返回值 【这个使用$?接受返回值,如果有返回值则返回返回值,如果没有返回值,但执行成功返回0,若不成功则可能返回别的返回值。所以有时不知道是执行成功的返回值还是报错生成的返回值】
可以看到这里使用了$?接收了返沪值
输出结果为: