首页 » SEO优化 » 和用php函数举例技巧_编程小短文Bash子字符串还在用试试机能瞬间飙升100倍

和用php函数举例技巧_编程小短文Bash子字符串还在用试试机能瞬间飙升100倍

访客 2024-10-28 0

扫一扫用手机浏览

文章目录 [+]

cat /etc/shells

查看当前系统支持的 shell 种类。

Bash 不但是系统管理员与内核交互的利器,且是一种措辞,可以编写大多数系统的自动化脚本,用于简化运维事情。

和用php函数举例技巧_编程小短文Bash子字符串还在用试试机能瞬间飙升100倍 和用php函数举例技巧_编程小短文Bash子字符串还在用试试机能瞬间飙升100倍 SEO优化

本日我们学习一个知识点:如何在 Bash 中止定某个字符串中,是否包含子字符串?

和用php函数举例技巧_编程小短文Bash子字符串还在用试试机能瞬间飙升100倍 和用php函数举例技巧_编程小短文Bash子字符串还在用试试机能瞬间飙升100倍 SEO优化
(图片来自网络侵删)

题外话

在高等编程措辞中,一样平常都供应了该功能,比如 PHP 利用函数 strpos 查找子字符串首次涌现的位置,有则返回 integer 整型,没有则返回 false。

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

在 MySQL 中也常常利用字符串匹配,比如通配符 %,还可以利用函数 instr 来实现。

SELECT INSTR("abcd",'f');问题的提出

一位开拓者在编写 Bash 脚本的过程中,碰着一个问题。
首先是有这样一个赋值操作:

string="My string"

然后他判断是否存在某个子字符串:

if [ $string ?? 'foo' ]; then echo "It's there!"fi

他这里打的 ?? 是占位符号,不知道该怎么写。
乃至有了一种丑陋的写法:

if echo "$string" | grep 'foo'; then echo "It's there!"fi

这样的实现是不是 low 太多了?

办理方法

能用一行办理的问题,何必 BB!

一位开拓者给出的方案是,如果判断条件上利用了双中括号,那么就可以这样写:

string='My long string'if [[ $string == "My long" ]]; then echo "It's there!"fi

把稳,是将子字符串外部利用双号包裹。

个中 == 是字符串相等的比较符。
而 则是通配符,会适配任意长度的任意字符。

强大的正则

我们知道,Bash 中的数据类型是极为弱的,不像高等措辞那样区分 integer, string, float, double, array, Object 等等。
在 Bash 看来,万物都是字符串。
这与 Unix 的“统统皆文件”哲学不谋而合。

处理字符串,我们一定绕不开“正则表达式”。

上述的问题,有没有可能利用强大的正则办法处理呢?答案是肯定的。

比如这样写:

string='My string';if [[ $string =~ "My" ]]then echo "It's there!"fi

把稳我们利用了 =~ 用于正则匹配,而不是逻辑运算符了。

正如上面所述,Bash 中如果是数字的比较,也完备可以利用字符串的正则办法处理。

比如要判断某个整数值,是否在某个有效的列表内。
可以这样写。

number=3if [[ "1,3,5,6,9" =~ "${number}" ]]; then echo "Yes"fi

用起来是不是精简多了。

知识延伸

像问题中利用 grep 用于子字符串筛选的那样,实在有更稳固的写法:

if grep -q foo <<<"$string"; then echo "It's there"fi

一样平常不该用 echo 后利用管道符 grep。

写在末了

在命令行中敲一下测试测试吧。
只有多实践才能加深印象。

其余,正则表达式是真的强!

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

相关文章

BBH设计网站,引领品牌创新的数字平台

在数字化时代,品牌建设已经成为了企业发展的核心驱动力。在这个背景下,BBH设计网站应运而生,为广大企业提供了一个集品牌设计、营销传...

SEO优化 2024-12-05 阅读0 评论0

BEC设计网站,引领未来商业空间美学潮流

在当今社会,商业空间设计已成为推动城市经济发展、提升企业竞争力的重要手段。而BEC设计网站,凭借其独特的创新理念、精湛的设计技艺和...

SEO优化 2024-12-05 阅读0 评论0

Cgo脾气暴躁,剖析根源与应对步骤

在当今社会,随着互联网的普及和技术的飞速发展,编程语言在各个领域得到了广泛应用。Cgo作为C语言和Go语言之间的桥梁,为开发者提供...

SEO优化 2024-12-05 阅读0 评论0