Shell脚本(篇四)

博客介绍了利用uuidgen和cut命令获取8个字符随机串,编写whami.sh脚本检测脚本所在目录和文件名,简述egrep工具-q选项含义,解释正则表达式中+、?含义,还说明了编写匹配11位手机号的正则表达式方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.利用uuidgen和cut命令获取8个字符的随机串。

[root@svr5 ~]# uuidgen | cut -b -8
c5b39937
[root@svr5 ~]# uuidgen | cut -b -8
3b0be6b5
[root@svr5 ~]# uuidgen | cut -b -8
7a2942b5

2.编写whami.sh脚本,检测当前脚本放在哪个目录下、文件名是什么。

1)编写whami.sh脚本文件

[root@svr5 ~]# cat whami.sh 
#!/bin/bash
cd $(dirname $0) && pwd
basename $0

[root@svr5 ~]# chmod +x whami.sh

2)测试、验证执行效果

[root@svr5 ~]# ./whami.sh 							//正常识别路径、文档名
/root
whami.sh

[root@svr5 ~]# cp whami.sh /opt/new.sh
[root@svr5 ~]# /opt/new.sh  						//换位置、改名后一样可识别
/opt
new.sh

3.简述egrep工具的-q选项的含义,并验证其在脚本应用中的价值。

选项-q的作用是静默、无任何输出,效果类似于正常的egrep操作添加了&> /dev/null来屏蔽输出。在脚本中当需要检测文本内是否存在指定的关键词时,可以利用egrep -q的返回状态值来作为判断依据,从而简化&>输出的操作。
验证效果可参考:
[root@svr5 ~]# cat /etc/shells 							//查看测试文本
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
/bin/zsh 

[root@svr5 ~]# egrep -q '/zsh' /etc/shells && echo yes || echo no
yes  														//支持zsh
[root@svr5 ~]# egrep -q '/bsh' /etc/shells && echo yes || echo no 
no 														//不支持bsh

*4.正则表达式中的+、?、分别表示什么含义?

这三个字符用来限制关键词的匹配次数,含义分别如下:
+:最少匹配一次,比如a+可匹配a、aa、aaa等
?:最多匹配一次,比如a?可匹配零个或一个a
*:匹配任意多次,比如a*可匹配零个或任意多个连续的a

5.如何编写正则表达式匹配11位的手机号?

准备测试文件:
[root@svr5 ~]# cat tel.txt 
01012315
137012345678
13401234567
10086
18966677788
提取包含11位手机号的行:
[root@svr5 ~]# egrep '^1[0-9]{10}$' tel.txt 
13401234567
18966677788
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值