SHELL脚本学习

网友投稿 210 2022-10-27


SHELL脚本学习

一、打印字符串长度        如下,循环打印下面这名话字母数不大于6个的单词        She could see the open door of a departmental office. vim print-str.sh#!/bin/bash #打印字符串个数#第一种解决思路for i in She could see the open door of a departmental officedo     [ ${#i} -le 6 ]&& echo $i done echo +++++++++++++++++++++++++++++++++++++#第二种解决思路for i in She could see the open door of a departmental office do     [ `echo $i|wc -L` -le 6 ]&& echo $idone echo +++++++++++++++++++++++++++++++++++++#第三种解决思路echo "She could see the open door of a departmental office" |awk '{for(i=1;i<=NF;i++) if(length($i)<=6) print $i}'上面脚本中有一个点给大家说一下:${#}的作用帮助文档说明如下:${#parameter}${#var} 可以用来计算出变量值的长度[root@xuegod72 ~]# NAME=martin[root@xuegod72 ~]# echo ${#NAME}6那么${ }还有一些其它方面的作用,比如截取、替换比如我们定义一个变量:file=/var/log/message${file#*/}:     删掉第一个 / 及其左边的字符串[root@xuegod72 ~]# echo ${file#*/}var/log/message${file##*/}:  删掉最后一个 /  及其左边的字符串[root@xuegod72 ~]# echo ${file##*/}message${file#*.}:     删掉第一个 .  及其左边的字符串[root@xuegod72 ~]# file=/var/log/yum.log/xuegod.txt[root@xuegod72 ~]# echo ${file#*.}log/xuegod.txt${file##*.}:   删掉最后一个 .  及其左边的字符串:[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file##*.}txt${file%/*}:    删掉最后一个  /  及其右边的字符串:[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file%/*}/var/log/yum.log${file%%/*}: 删掉第一个 /  及其右边的字符串:[root@xuegod72 ~]# echo ${file%%/*}空值${file%.*}:    删掉最后一个  .  及其右边的字符串[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file%.*}/var/log/yum.log/xuegod${file%%.*}: 删掉第一个  .   及其右边的字符串[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file%%.*}/var/log/yum说明:#  是去掉左边(键盘上#在 $ 的左边)% 是去掉右边(键盘上% 在$ 的右边)单一符号是最小匹配;两个符号是最大匹配

字符串截取

字符串提取:${file:0:5}:提取最左边的 5 个字节(中间用冒号分开)[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file:0:5}/var/${file:5:5}:提取第 5 个字节右边的连续5个字节[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file:5:5}log/y对变量值进行替换${file/var/opt}:将第一个var 替换为opt[root@xuegod72 ~]# file=/var/log/yum.log/martin.txt[root@xuegod72 ~]# echo ${file/var/opt}/opt/log/yum.log/xuegod.txt${file/var/opt}:将全部var 替换为opt[root@xuegod72 ~]# file=/var/log/var.log/var.txt[root@xuegod72 ~]# echo ${file//var/opt}/opt/log/opt.log/opt.txt

#判断一个文件的扩展名是否为真,如果为真打印“字符串数量”,否则,打印0

if expr "$1" : ".*\.pub" > /dev/null ; then

ID_FILE="$1"

else

ID_FILE="$1.pub"

fi

解释:判断位置$1参数的文件扩展名,是否为“.*.pub”,如果为0则为假,否则打印字符串为8

举例:expr "test.txt" : ".*\.pub"        为假

举例:expr "test.pub" : ".*\.pub"      为真


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何拒绝搜狗浏览器改变IE默认搜索
下一篇:salt限制用户权限
相关文章

 发表评论

暂时没有评论,来抢沙发吧~