1

我可以知道为什么在这个 shell 脚本中使用“ ~”和“ ”。这是脚本删除比特定日期更早的文件的一部分。+$

if ! [[ $FILE_AGE =~ "^[0-9]+$" ]]; then
  usage
  exit 1

我能够理解这部分脚本用于检查我们输入的是数字还是字母。

4

4 回答 4

6

运算符的=~意思是“如果左侧的字符串与右侧的正则表达式匹配,则为 true,否则为 false”。

^[0-9]+$+表示在 0 到 9(即 )范围内查找一个或多个(即 )字符的序列,这些字符从字符串 ( )[0-9]的开头 ( ) 开始并在字符串 ( ^) 的末尾结束$

这是基本的 bash 和正则表达式,有关更多详细信息,请参阅Bash 手册页

于 2012-04-04T17:58:23.300 回答
1

是正=~则表达式匹配运算符,+属于模式[0-9]+,而不是$. 该条件测试变量 FILE_AGE 的值是否与(行/字符串开头)和(行/字符串结尾[0-9]+)之间的模式(一位或多位)匹配。^$

于 2012-04-04T18:03:53.480 回答
1

=~是正则表达式匹配

$是正则表达式的一部分,^[0-9]+$它意味着匹配字符串的结尾

谷歌“正则表达式”的教程或指南

于 2012-04-04T17:58:52.513 回答
0

谷歌“Bash 脚本等于波浪号运算符”:

http://unixdog.com/?p=94

至于美元符号,第一个是因为$FILE_AGE它是 Bash 中的一个变量,第二个是因为它是正则表达式的一部分。这是 RegEx 上的一个很棒的网站:

http://www.regular-expressions.info/reference.html

于 2012-04-04T17:57:25.007 回答