Bash Shell字符串比较入门
在编写Bash脚本时,您通常需要比较两个字符串以检查它们是否相等。 当两个字符串具有相同的长度并且包含相同的字符序列时,它们是相等的。
本教程描述了如何比较Bash中的字符串。
比较运算符比较运算符是比较值并返回true或false的运算符。 在比较Bash中的字符串时,您可以使用以下运算符:
string1 = string2 和 string1 == string2 - 相等运算符,如果字符串相等,则返回true。
将=运算符与test [命令一起使用。
将==运算符与[[模式匹配命令]一起使用。
string1 != string2 - 不等式运算符,如果字符串不相等,则返回true。
string1 =~ regex - 正则表达式运算符,如果左边字符串数与右侧的扩展正则表达式匹配,则返回true。
string1 > string2 - 大于运算符,按字典顺序(字母顺序)排序,如果左边字符串大于右边字符串,则返回true。
string1 < string2 - 小于运算符,按字典顺序(字母顺序)排序,如果右边边字符串大于左边字符串,则返回true。
-z string - 如果字符串长度为零,则为True。
-n string - 如果字符串长度不为零,则为True。
以下是比较字符串时需要注意的几点:
必须在二元运算符和操作数之间使用空格。
始终在变量名称周围使用双引号以避免任何单词拆分或通配问题。
Bash不按“类型”隔离变量,变量根据上下文被视为整数或字符串。
检查两个字符串是否相等在大多数情况下,在比较字符串时,您需要检查字符串是否相等。
以下脚本使用test [命令检查字符串是否与=运算符相等:
#!/bin/bash
VAR1="Linuxidc.com"
VAR2="Linuxidc.com"
if [ "$VAR1" = "$VAR2" ]; then
echo "字符串是相等的。"
else
echo "字符串是不相等的。"
fi
执行脚本时,它将打印以下输出。
linuxidc@linuxidc:~/linuxidc.com$ ./linuxidc.com.sh
字符串是相等的。
这是另一个脚本,它接受用户的输入并比较给定的字符串。 在这个例子中,我们将使用[[command and == operator]。
再输入字符串
请输入第一二个字符串
#!/bin/bash
read -p "请输入第一个字符串: " VAR1
read -p "请输入第二个字符串: " VAR2
if [[ "$VAR1" == "$VAR2" ]]; then
echo "字符串是相等的。"
else
echo "字符串是不相等的。"
fi
运行脚本并在提示时输入字符串:
linuxidc@linuxidc:~/linuxidc.com$ ./linuxidc.com.sh
请输入第一个字符串:
请输入第二个字符串: linuxidc.com
字符串是不相等的。
您还可以使用逻辑和&&和或|| 比较字符串:
[[ "string1" == "string2" ]] && echo "linuxidc.com" || echo "linuxidc"
linuxidc
检查String是否包含子字符串
有多种方法可以检查字符串是否包含子字符串。
一种方法是使用星号符号*来环绕子串,这意味着匹配所有字符。
#!/bin/bash
VAR='GNU/Linux 是一个操作系统'
if [[ $VAR == *"Linux"* ]]; then
echo "它在那里。"
fi
该脚本将回显以下内容:
它在那里。
另一种选择是使用正则表达式运算符=?,如下所示:
#!/bin/bash
VAR='GNU/Linux 是一个操作系统'
if [[ $VAR =~ .*Linux.* ]]; then
echo "它在那里。"
fi
后跟星号.*的句点匹配除了换行符之外的任何字符零次或多次出现。
检查String是否为空通常,您还需要检查变量是否为空字符串。 您可以使用-n和-z运算符来完成此操作
#!/bin/bash
VAR=''
if [[ -z $VAR ]]; then
echo "字符串为空。"
fi
输出:
字符串为空。
#!/bin/bash
VAR=='linuxidc.com'
if [[ -n $VAR ]]; then
echo "字符串不为空。"
fi
输出:
字符串不为空。
使用ase操作符比较字符串您也可以使用case语句来比较字符串,而不是使用测试运算符:
#!/bin/bash
VAR="Arch Linux"
case $VAR in
"Arch Linux")
echo -n -e "Linuxidc 匹配\n"
;;
Fedora | CentOS)
echo -n "Red Hat"
;;
esac
输出:
Linuxidc 匹配
字典比较词法比较是通过从左到右顺序比较字符串中的字符,按字母顺序比较两个字符串的操作。这种比较很少使用。
下面的脚本从词汇上比较了两个字符串:
#! /bin/bash value1=linuxidc value2=linuxidc.com if [ $value1 \> $value2 ] then echo "$value1 大于 $value2" elif [ $value1 \< $value2 ] then echo "$value1 小于 $value2" else echo "$value1 等于 $value2" fi该脚本将输出以下内容:
linuxidc 小于 linuxidc.com
相关热词: shell
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/jiaob/shell/8958.shtml
相关文章
热门TAG
命令 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 技巧 权重 服务器 网站流量 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows 蜘蛛 搜索引擎 网站收录 JSP 实例解析最新文章
-
PHP生成奖状
时间:2021-01-06
-
python实现输入五个数并求
时间:2021-01-06
-
php检测网站是否正常打开
时间:2021-01-05
-
python怎么右对齐
时间:2021-01-05
-
Python3爬虫入门之Python3的安
时间:2021-01-05
-
如何用PHP接收http请求头信
时间:2021-01-05
-
数据库怎么连接用php写的
时间:2021-01-05
-
php后缀怎么打开
时间:2021-01-05
热门文章
-
解析shell字段分隔符的用法(图文)
时间:2020-12-22
-
Python3爬虫进阶:MongoDB存储(非关系型数
时间:2020-12-29
-
如何在Linux或者UNIX下调试Bash Shell脚本
时间:2020-12-22
-
关于php中匿名函数与回调函数的详解
时间:2020-12-29
-
php文档怎么打开
时间:2020-12-29
-
php检测网站是否正常打开
时间:2021-01-05
-
PHP PHP_EOL 换行符
时间:2020-12-29
-
python实现输入五个数并求平均值
时间:2021-01-06
-
浅谈Linux Shell的管道与重定向
时间:2020-12-23
-
如何检测Django是否安装成功
时间:2020-12-29
