【Shell篇<Ⅲ>】——shell函数、字符串的处理

让我们进入今天的学习吧!
💪Keep  trying💪

在这里插入图片描述

一、函数

  • 作用:将公共的语句块封装在一起,实现脚本的精简化,方便后期调用
  • 格式
函数名(){
	指令序列
	......
}

调用方法:直接写函数名即可调用

二、字符串的处理

2.1 子串截取

  • 格式:${变量名:起始位置:长度}
    注意:其实位置从0开始;起始位置不写的话默认为0
    在这里插入图片描述

2.2 子串替换

  • 格式
    • 替换出现的第一个:${变量/旧/新}
      在这里插入图片描述

    • 替换所有出现的:${变量//旧/新}
      在这里插入图片描述
      注意:这里的新可以不写,如果不写的话,就相当于空,等同与删除的效果

2.3 子串的删除(删两头)

  • 掐头(从左往右删)
    • 直接掐:${变量#要删除的子串}
      在这里插入图片描述

    • 最短匹配删除:${变量#*关键词}
      也就是从左往右删,删到第一个和关键词匹配的地方
      在这里插入图片描述

    • 最长匹配删除:${变量##*关键词}
      也就是从左往右删,删到最后一个和关键词匹配的地方
      在这里插入图片描述

  • 去尾(从右往左删)
    • 直接去尾:${变量%关键词}
      在这里插入图片描述

    • 最短匹配去尾:${变量%关键词*}
      在这里插入图片描述

    • 最长匹配去尾:${变量%%关键词*}
      在这里插入图片描述

2.4 给变量赋初值

  • 格式:${var:-str}
    注意:若变量var有值,则返回变量var的值,否则返回str的值
    在这里插入图片描述

三、综合案例

  • 编写一个脚本,可以创建新用户,并随机配置8位密码(密码由字母大小写和数字随机组成)
#!/bin/bash

_pwd=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789    #存放密码的库
pwd=""  #最终的八位密码
# 先编写生成8位随机密码的函数
password(){
    for i in {1..8}
    do
        n=$[RANDOM%62] #得到0-61中的随机数
        pwd_1=${_pwd:n:1}
        pwd=$pwd$pwd_1   #两个变量可以直接拼接在一起
    done
}

password #调用函数,生成八位密码
useradd $1
echo $pwd | passwd --stdin $1

脚本运行结果如下:
在这里插入图片描述

  • 案例升级
    需要一次创建多个用户
#!/bin/bash

_pwd=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789    #存放密码的库
pwd=""  #最终的八位密码
# 先编写生成8位随机密码的函数
password(){
    for i in {1..8}
    do
        n=$[RANDOM%62] #得到0-61中的随机数
        pwd_1=${_pwd:n:1}
        pwd=$pwd$pwd_1   #两个变量可以直接拼接在一起
    done
}

for i in $*   #遍历所有的位置参数
do
    password #调用函数,生成八位密码
    useradd $1
    echo $pwd | passwd --stdin $1
    shift    #将位置参数左移一下
done

脚本运行结果如下:
在这里插入图片描述


         👆回到顶部👆

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小猿桥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值