我可以知道为什么在这个 shell 脚本中使用“ ~
”和“ ”。这是脚本删除比特定日期更早的文件的一部分。+$
if ! [[ $FILE_AGE =~ "^[0-9]+$" ]]; then
usage
exit 1
我能够理解这部分脚本用于检查我们输入的是数字还是字母。
我可以知道为什么在这个 shell 脚本中使用“ ~
”和“ ”。这是脚本删除比特定日期更早的文件的一部分。+$
if ! [[ $FILE_AGE =~ "^[0-9]+$" ]]; then
usage
exit 1
我能够理解这部分脚本用于检查我们输入的是数字还是字母。
运算符的=~
意思是“如果左侧的字符串与右侧的正则表达式匹配,则为 true,否则为 false”。
^[0-9]+$
+
表示在 0 到 9(即 )范围内查找一个或多个(即 )字符的序列,这些字符从字符串 ( )[0-9]
的开头 ( ) 开始并在字符串 ( ^
) 的末尾结束$
。
这是基本的 bash 和正则表达式,有关更多详细信息,请参阅Bash 手册页。
是正=~
则表达式匹配运算符,+
属于模式[0-9]+
,而不是$
. 该条件测试变量 FILE_AGE 的值是否与(行/字符串开头)和(行/字符串结尾[0-9]+
)之间的模式(一位或多位)匹配。^
$
=~是正则表达式匹配
$是正则表达式的一部分,^[0-9]+$
它意味着匹配字符串的结尾
谷歌“正则表达式”的教程或指南
谷歌“Bash 脚本等于波浪号运算符”:
至于美元符号,第一个是因为$FILE_AGE
它是 Bash 中的一个变量,第二个是因为它是正则表达式的一部分。这是 RegEx 上的一个很棒的网站: