Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash-如何检查字符串中的所有字母是否为大写_Bash - Fatal编程技术网

Bash-如何检查字符串中的所有字母是否为大写

Bash-如何检查字符串中的所有字母是否为大写,bash,Bash,例如: "abc" -> false "aBc" -> false "aBC" -> false "ABC" -> true 您可以尝试通过正则表达式匹配执行此操作: etoneja@ois ~ $ REGEX='^[A-Z]+$' etoneja@ois ~ $ echo "ABC" | grep -P -q "$REGEX" etoneja@ois

例如:

"abc" -> false
"aBc" -> false
"aBC" -> false
"ABC" -> true

您可以尝试通过正则表达式匹配执行此操作:

etoneja@ois ~ $ REGEX='^[A-Z]+$'
etoneja@ois ~ $ echo "ABC" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
0
etoneja@ois ~ $ echo "ABc" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
1
0表示成功,1表示失败


在@Gordon Davisson comment之后编辑。

您可以尝试使用正则表达式匹配:

etoneja@ois ~ $ REGEX='^[A-Z]+$'
etoneja@ois ~ $ echo "ABC" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
0
etoneja@ois ~ $ echo "ABc" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
1
0表示成功,1表示失败


在@Gordon Davisson comment之后编辑。

在纯
bash
中,使用
[
中的正则表达式:

$ [[ abc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ ABC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
All upper case

在纯
bash
中,使用
[[
中的正则表达式:

$ [[ abc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ ABC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
All upper case

您应该在变量引用(即,
grep-P-q“$REGEX”
)周围加上双引号。没有它们,shell会将该REGEX视为glob模式,并尝试将其放入匹配文件名列表中,这可能会导致非常奇怪的问题。您应该在变量引用(即,
grep-P-q“$REGEX”)周围加上双引号
)。如果没有它们,shell会将该正则表达式视为全局模式,并尝试将其放入匹配文件名列表中,这可能会导致非常奇怪的问题。如果字符串仅包含字母,则可以使用A2BC。如果字符串仅包含字母,则可以使用A2BC。您可以尝试使用A2BC