Shell脚本_基本语法

一、判断基础

1.1 字符串比较

是否为空 [ -z 字符串]
等于 [ 字符串1 == 字符串2 ]
不等于 [ 字符串1 != 字符串2 ]

1.2 整数值比较

[ 整数值1 操作符 整数值2 ]

操作符含义
-eq等于
-ne不等于
-ge大于或等于
-le小于或等于
-gt大于
-lt小于

1.3 文件状态判断

[ 操作符 文件或目录 ]

操作符含义
-e判断对象是否存在(Exist)
-d判断对象是否为目录(Directory)
-f判断对象是否为一般文件(File)
-r判断对象是否可读(Read)
-w判断对象是否可写(Write)
-x判断对象是否可执行(eXcute)

1.4 组合多个命令

  • 使用控制符组合多个命令
组合符号作用
;依次执行命令
&&前一条命令成功才执行下一条命令
||前一条命令执行不成功才执行下一条命令

[ 判断1 ] && [ 判断2 ]
[ 判断1 ] || [ 判断2 ]

二、if 语句及case语句

2.1 if 单分支语法

  • 当“条件成立”时执行命令序列,否则不执行任何操作
if 条件											if 条件;then
	then 命令				或						命令
fi												if

2.2 if多分支语法

  • if语句针对多个条件分别执行不同的操作
if 条件1;then
	命令1
elif 条件2;then
	命令2
... ...
else
	命令n
fi

2.3 case语句

  • 用于判断变量的取值,类似于多分支的if语句,注意命令序列最后必须以分号结尾
case 变量 in
目标值1)
	命令1;;
目标值2
	命令2;;
	.. ..
*)
	默认命令
esac

三、循环语句

3.1 for语句

for 变量 in 值列表
do 
	命令序列
done
for ((初值;条件;步长))
do 
	命令序列
done

3.2 while语句

while 条件测试
do
	命令序列
done

3.3 脚本中断与退出

  • continue可以结束单次循环
  • break可以结束循环体
  • exit可以退出脚本

四、其他语法

4.1 函数

在shell环境中,将一些需要重复使用的操作,定义为公共的语句块,称为函数

function 函数名 {
	命令序列
	.. ..
}
函数名() {
	命令序列
	.. ..
}

调用函数时,通过函数名 值1 值2 可传递“位置参数”
函数名 & 可以让函数开启单独的进程执行

4.2 字串截取/替换/掐头/去尾

  • 截取
    ${变量:起始位置:长度}
phone=123456789
echo ${phone}	#统计变量长度	9
echo ${phone:0:3}	123
echo ${phone:4:-2}	4567
  • 替换1个结果
    ${变量/旧字串/新字串}
  • 替换全部结果
    ${变量//旧字串/新字串}
  • 从左向右,最短匹配删除
    ${变量#关键字}
  • 从左向右,最长匹配删除
    ${变量##关键字}
  • 从右向左,最短匹配删除
    ${变量%关键字}
  • 从右向左,最长匹配删除
    ${变量%%关键字}
    掐头/去尾不会改变变量原有值
  • 变量初始化:变量有值,则返回该变量的值,无值则返回初始值
    ${变量:-关键词}

4.3 随机密码

  • 使用命令生成随机密码:uuidgen 或 openssl
  • 使用随机设备文件(/dev/random、/dev/urandom)
    tr可以对数据进行替换、删除等操作 -c取反 -d删除
tr -cd '0-9a-zA-Z' < /dev/urandom | head -c 10
#删除随机数据中不是数字或大小写字母的数据,取前10个
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值