我试过下列方法,但没有成功

[root@OBAMA~]# bash
[root@OBAMA~]# a=HelloWorld

[root@OBAMA~]# [[ $a == [A-Za-z] ]] && echo "YES ITS STRING"

(命令不打印任何内容)
[root@OBAMA~]# [[ $a == [A-Z][a-z] ]] && echo "YES ITS STRING"

(命令不打印任何内容)

最佳答案

更改下面的命令。

$ [[ $a =~ [A-Za-z]+ ]] && echo "YES ITS STRING"
YES ITS STRING

使用=~运算符根据正则表达式测试输入字符串。
在character类旁边添加+,这样它将重复前面的模式或标记一次或多次。这里没必要。
添加锚定,以便进行精确的字符串匹配。[[ $a =~ [A-Za-z] ]] && echo "YES ITS STRING"将单独打印字符串,因为变量YES ITS STRING至少包含一个字母表。
$ a="HelloWorld"
$ [[ $a =~ ^[A-Za-z]+$ ]] && echo "YES ITS STRING"
YES ITS STRING
$ a="Hello World"
$ [[ $a =~ ^[A-Za-z]+$ ]] && echo "YES ITS STRING"
$

10-01 11:11