linux - 如何检查字符串是否包含特殊字符(!@#$%^&*()_+)

标签 linux bash shell

我想知道检查字符串是否为

的最佳方法是什么
$str 

包含以下任何字符

!@#$%^&*()_+

我想过使用 ASCII 值,但对具体如何实现有点困惑。

或者如果有更简单的方法来检查字符串与值。

最佳答案

将它与 glob 进行匹配。您只需要转义 shell 认为特殊的字符:

#!/bin/bash
str='some text with @ in it'
if [[ $str == *['!'@#\$%^\&*()_+]* ]]
then
  echo "It contains one of those"
fi

关于linux - 如何检查字符串是否包含特殊字符(!@#$%^&*()_+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621736/

相关文章:

java - 将 Double 从 Delphi/Pascal 转换为 Java

bash - 在ansible中转义特殊字符

shell - 仅从开放端口上的 nmap 扫描输出 IP

bash - shell 中文件的一列中的唯一单词数

linux - 为什么 v4l 不建议使用内核提供的 header ?

linux - 有没有办法在使用 sdiff 时对差异进行颜色突出显示?

linux - 什么是./在终端上执行期间

bash - BASH 中的空函数

bash - 在什么情况下,文件通配符在 bash 中不起作用?

linux - bash脚本: word occurrences in web sites