首页 > 其他分享 >bash的特有扩展属性

bash的特有扩展属性

时间:2024-10-07 13:11:33浏览次数:9  
标签:特有 name echo LDAP liwl 替换 bash 属性

1.[[ ]] 符合匹配

#!/bin/bash
name=$1
if [[ "${name}" =~ ^li* ]]; then
	echo "以li开头"
else
	echo "不以li开头"
fi
#
if [[ "${name}"  == "liwl" ]] || [[ "${name}" == "liwanliang" ]]; then
	echo ""
fi

2. $(( )) 数学计算

#!/bin/bash
a=$1
b=$2
echo $(( ${a} + ${b} ))

3. $( )执行命令或者函数

当需要把命令或者函数执行结果赋值给变量时,使用$()进行操作

#!/bin/bash
function print_name(){
	echo "liwl"
}
name=$(print_name)
echo "${name}"
#
myhostname=$(hostname)
echo "${myhostname}"

4. 字符串剪裁

匹配的字符串被剪裁,生成新的字符串。记忆方法:键盘上#符号在左,%符号在右。一个符号不贪婪,两个符号巨贪婪

注意:未改变旧字符串变量,需要用新的变量来存储结果

#!/bin/bash
domain="www.liwl.cn"
echo "字符串:${#domain}"
#
echo "从左往右非贪婪模式匹配: ${domain#*.}" #结果:liwl.cn
echo "从左往右贪婪模式匹配: ${domain##*.}" #结果:cn
#
echo "从右往左非贪婪模式匹配: ${domain%.*}" #结果:www.liwl
echo "从右往左贪婪模式匹配: ${domain%%.*}" #结果:www

剪裁常用于:IP地址,域名,文件路径等规律性字符串

另外一种剪裁是按照顺序:

#!/bin/bash
name="liwanliang"
echo "从左数的第4个字符串开始剪裁,${name:4}"
echo "从右数第4个字符串开始剪裁:${name: -4}" #:和-直接,有空格。无空格表示如果变量值没有值时,提供默认值
#!/bin/bash
name="liwanliang"
echo "${name:-4}" #输出liwanliang
echo "${name: -4}" #输出iang
name=""
echo "${name:-4}" #输出4
echo "${name: -4}" #输出空

5. 字符串替换

#!/bin/bash
LDAP=$(egrep -w ldap /etc/passwd)
echo "原字符串:${LDAP}"
#
echo "匹配"
echo "单个匹配:${LDAP/ldap/liwl}"
echo "全部匹配:${LDAP//ldap/liwl}"
#
echo -e "会把l到p之前的字符替换:\n替换前${LDAP}\n替换后${LDAP/l*p/liwl}"
#
echo "替换"
echo -e "单个替换:\n替换前${LDAP}\n替换后${LDAP/l??p/liwl}"
echo -e "全部替换:\n替换前${LDAP}\n替换后${LDAP//l??p/liwl}"
echo "删除"
echo -e "删除前${LDAP}\n删除后${LDAP/l*p/}"
echo -e "删除前${LDAP}\n删除后${LDAP/l??p/}"
echo -e "删除前${LDAP}\n删除后${LDAP//l??p/}"

注意:

  • /#表示只在一行的开头进行匹配
  • /%表示只在一行的末尾开始匹配
  • //匹配所有实例
  • ^^表示转换为大写
  • ,,表示转换为小写
  • *表示零或者多个
  • ?表示一个字符

6. 大小写转换

7. source加载变量

8. 函数定义

sh的规范:函数名(){...}

bash和ksh可接受规范:function 函数名{...}

仅bash接受规范:function 函数名(){...}

标签:特有,name,echo,LDAP,liwl,替换,bash,属性
From: https://www.cnblogs.com/liwanliangblog/p/18449930

相关文章

  • linux中的source命令和bash命令各有什么作用
    在Linux中,`source`命令和`bash`命令都是用来执行shell脚本或者设置环境变量的,它们在Shell编程和日常的系统管理任务中经常被用到。下面我简要解释一下这两个命令的作用:1.`source`命令:使用`source`命令可以读取并执行一个shell脚本文件中的命令,就好像脚本中的命令是直接在当......
  • Maya中的节点和属性
    节点Maya是基于节点构建的,Maya场景可以理解为节点图的视觉表现,Maya中创建的每个对象都由一个或多个节点表示,对象的节点图决定了其形状、颜色等特征,通过节点可以追溯历史操作,并可对历史操作进行修改。如Sphere“对象”是基于多个节点构建的:创建节点(UtilityHelper)形状节点(Sha......
  • 帝国CMS增加信息自动把内容图片的alt和title属性替换为信息标题
    要在帝国CMS中自动为图片添加 alt 和 title 属性,可以按照以下步骤操作:步骤1:添加自定义函数 user_imgalt()打开 userfun.php 文件找到 e/class/userfun.php 文件并打开。添加自定义函数 user_imgalt()在文件末尾(?> 之前)添加以下函数:functionuser_im......
  • 帝国cms标题设置了加粗、颜色等属性在内容页显示
    要在EmpireCMS的内容页上显示带有颜色样式的标题,可以通过自定义函数来实现。具体步骤如下:在 e/class/userfun.php 文件中增加自定义函数 DoTitleFont。在内容页模板中替换 [!--title--] 为 <?=DoTitleFont($navinfor[titlefont],$navinfor[title])?>。步骤1:在 e/cl......
  • pbootcms去除ueditor编辑器图片自动添加的title和alt属性
    为了去掉PbootCMS后台使用百度UEditor编辑器上传图片时自动添加的 title 和 alt 属性,并将其替换为默认为空的 alt 属性,可以按照以下步骤进行操作:步骤1:修改 ueditor.all.min.js 文件打开文件:打开文件 \core\extend\ueditor\ueditor.all.min.js。搜索并修改代码......
  • 鸿蒙应用示例:应用开发中的动态获取属性与调用方法技巧
    随着HarmonyOS的发展,API版本的更新带来了许多新的特性和限制。在API11及以后的版本中,直接赋值对象的语法不再被支持,这要求开发者们采用新的方式来处理对象的创建和属性的访问。同时,HarmonyOS支持ETS(EnhancedTypeScript)文件,这是一种扩展了TypeScript的文件格式,用于更好地支持Harmo......
  • CSS display属性 inline-block flex grid
    CSSdisplayinline-block flexgrid=======================================CSS的display属性是一个核心属性,用于控制元素如何在页面布局中显示,包括其盒模型的行为。以下是display属性的一些常见值及其示例代码:1.block   说明:将元素变为块级元素,独占一行,可以设置宽高、......
  • css的动画属性
    CSS动画属性是CSS3的一个重要特性,它允许你创建平滑的过渡效果,增强用户的交互体验。CSS动画可以通过@keyframes规则和animation属性来创建。animation属性animation属性是一个简写属性,用于设置动画的多个属性,包括动画名称、持续时间、时间函数、延迟、迭代次数和方向等。1.a......
  • 前端某些属性的灵活应用场景
    在前端的发展过程中,因为部分属性的灵活性而发展更多应用场景,下面介绍两个1.CSSfloat属性的演变:最初的目的:CSSfloat属性在CSS2.1中的设计最初是为了文字环绕图像。这意味着,你可以让文字围绕在一个浮动的图像旁边,使页面内容更具美观性。演变为布局工具:随着时间的推移......
  • 65结构体-结构体数组。在C++中,结构体的定义是什么呢?如何新建一个结构体呢?新建好的结构
    问题描述:根据下列代码和结果回答下列问题。//Createdby黑马程序员.#include"iostream"usingnamespacestd;#include<string>//结构体定义structstudent{//成员列表stringname;//姓名intage;//年龄intscore;//分数}stu3;/......