
shell编程02 · 语法
1、if条件语句
结构
if [[ 判断条件 ]]; then 语句... fi
判断系统文件是否存在:
# !/bin/bash
if [ ! -d /data/2023 -a ! -d /tmp/2022/ ];then
mkdir -p /data/2023
fi
if 常见整型比较逻辑运算符
if 常见非数字整型判断逻辑比较符
2、if 判断括号区别
在使用 if 语句时,经常会使用 () 、(()) 、[] 、 [[]] 、{} 等括号,如下为几种括号简单区别对比:
()
# 用于多个命令组合、命令替换、初始化数组;
(())
# 整数扩展、运算符、重定义变量值、算术运算比较;
[]
# bash 内部命令,与 test 是等同的,正则字符范围、引用数组元素编号,不支持 +-*/ 数学运算符,逻辑测试使用 -a、-o;
[[]]
# bash程序语言的关键字,不是一个命令、[[]]结构比[]结构更加通用,不支持 +-*/ 数学运算符,逻辑测试使用&&、||;
{}
# 主要用于命令集合或者范围,例如 mkdir -p /data/201{7,9}
3、for 循环语句
for 循环语句主要用于对某个数据域进行循环读取、对文件进行遍历,通常用于需要循环某个文件或者列表。其语法格式以 for...do 开头 done 结尾。
for var in (表达式)
do
语句...
done
4、while 循环语句
While循环语句与for循环功能类似,主要用于对某个数据域进行循环读取、对文件进行遍历,通常用于需要循环某个文件或者列表,满足循环条件会一直循环,不满足则退出循环,其语法格式以while…do开头,done结尾。语法格式如下:
while (表达式)
do
语句...
done
5、case 选择语句
Case选择语句,主要用于对多个选择条件进行匹配输出,与if elif语句结构类似,通常用于脚本传递输入参数,打印出输出结果及内容,其语法格式以Case…in开头,esac结尾。语法格式如下:
case $1 in
Pattern1)
语句1
;;
Pattern2)
语句2
;;
Pattern3)
语句3
;;
*)
语句n
esac
6、select 循环选择语句
Select语句一般用于选择,常用于选择菜单的创建,可以配合PS3来做打印菜单的输出信息,其语法格式以selct…in do开头,done结尾:
select I in (表达式)
do
语句
done
Select选择语句Shell脚本编程案例如下:
(1) 打印开源操作系统选择:
#!/bin/bash
#By author yuedu.net 2017
PS3="What you like most of the open source system?"
select i in CentOS RedHat Ubuntu
do
echo "Your Select System: "$i
done
执行结果
[root@localhost yubo]# sh select.sh
1) CentOS
2) RedHat
3) Ubuntu
What you like most of the open source system?1
Your Select System: CentOS
What you like most of the open source system?2
Your Select System: RedHat
What you like most of the open source system?
``
7、shell 函数
Shell允许将一组命令集或语句形成一个可用块,这些块称为Shell函数,Shell函数的用于在于只需定义一次,后期随时使用即可,无需在Shell脚本中添加重复的语句块,其语法格式以function name(){开头,以}结尾。
Shell编程函数默认不能将参数传入()内部,Shell函数参数传递在调用函数名称传递,例如name args1 args2。
function name (){
command1
command2
........
}
name args1 args2
本文是原创文章,完整转载请注明来自 俞泊
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果