本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 AWSTOE 组件文档中使用比较运算符
您可以将以下比较运算符与断言操作模块和使用条件表达式一起使用如果构造。例如,比较运算符可以对单个值进行运算stringIsEmpty
,也可以将基准值与第二个值(变量值)进行比较,以确定条件表达式的计算结果是否为true
或false
。
如果对两个值进行比较,则第二个值可以是链式变量。
比较不同类型的值时,在比较之前可能会进行以下值转换:
-
对于数值比较,如果变量值是字符串,则在计算之前将字符串 AWSTOE 转换为数字。如果无法进行转换,则返回比较
false
。例如,如果变量值为"1.0"
,则转换有效,但如果变量值为,"a10"
则转换失败。 -
对于字符串比较,如果变量值是一个数字,则在求值之前将其 AWSTOE 转换为字符串。
比较字符串
以下比较运算符使用字符串来比较值、测试空格或空字符串,或者将输入值与正则表达式模式进行比较。字符串比较不区分大小写,也不会从字符串输入的开头或结尾修剪空格。
字符串比较运算符
- stringIsEmpty
-
true
如果指定的字符串不包含任何字符,则该stringIsEmpty
运算符返回。例如:# Evaluates to true stringIsEmpty: "" # Evaluates to false stringIsEmpty: " " # Evaluates to false stringIsEmpty: "Hello."
- stringIsWhitespace
-
测试为指定的字符串是否仅
stringIsWhitespace
包含空格。例如:# Evaluates to true stringIsWhitespace: " " # Evaluates to false stringIsWhitespace: "" # Evaluates to false stringIsWhitespace: " Hello?"
- stringEquals
-
测试为
stringEquals
指定的字符串是否与value
参数中指定的字符串完全匹配。例如:# Evaluates to true stringEquals: 'Testing, testing...' value: 'Testing, testing...' # Evaluates to false stringEquals: 'Testing, testing...' value: 'Hello again.' # Evaluates to false stringEquals: 'Testing, testing...' value: 'TESTING, TESTING....' # Evaluates to false stringEquals: 'Testing, testing...' value: ' Testing, testing...' # Evaluates to false stringEquals: 'Testing, testing...' value: 'Testing, testing... '
- stringLessThan
-
测试为指定的字符串
stringLessThan
是否小于value
参数中指定的字符串。例如:# Evaluates to true # This comparison operator isn't case sensitive stringlessThan: 'A' value: 'a' # Evaluates to true - 'a' is less than 'b' stringlessThan: 'b' value: 'a' # Evaluates to true # Numeric strings compare as less than alphabetic strings stringlessThan: 'a' value: '0' # Evaluates to false stringlessThan: '0' value: 'a'
- stringLessThan等于
-
测试为指定的字符串
stringLessThanEquals
是否小于或等于value
参数中指定的字符串。例如:# Evaluates to true - 'a' is equal to 'a' stringLessThanEquals: 'a' value: 'a' # Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A' stringLessThanEquals: 'A' value: 'a' # Evaluates to true - 'a' is less than 'b' stringLessThanEquals: 'b' value: 'a' # Evaluates to true - '0' is less than 'a' stringLessThanEquals: 'a' value: '0' # Evaluates to false - 'a' is greater than '0' stringLessThanEquals: '0' value: 'a'
- stringGreaterThan
-
测试为指定的字符串
stringGreaterThan
是否大于value
参数中指定的字符串。例如:# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a' stringGreaterThan: 'a' value: 'A' # Evaluates to true - 'b' is greater than 'a' stringGreaterThan: 'a' value: 'b' # Evaluates to true - 'a' is greater than '0' stringGreaterThan: '0' value: 'a' # Evaluates to false - '0' is less than 'a' stringGreaterThan: 'a' value: '0'
- stringGreaterThan等于
-
测试为指定的字符串
stringGreaterThanEquals
是否大于或等于value
参数中指定的字符串。例如:# Evaluates to true - 'a' is equal to 'A' stringGreaterThanEquals: 'A' value: 'a' # Evaluates to true - 'b' is greater than 'a' stringGreaterThanEquals: 'a' value: 'b' # Evaluates to true - 'a' is greater than '0' stringGreaterThanEquals: '0' value: 'a' # Evaluates to false - '0' is less than 'a' stringGreaterThanEquals: 'a' value: '0'
- patternMatches
-
测试
value
参数中指定的字符串是否与为指定的正则表达式模式匹配。patternMatches
比较使用符合语法的 Golang regexp 包。RE2有关RE2规则的更多信息,请参阅中的 google/re2 存储库。GitHub 以下示例显示了返回的模式匹配
true
:patternMatches: '^[a-z]+$' value: 'ThisIsValue'
比较数字
以下比较运算符适用于数字。根据YAML规范,为这些运算符提供的值必须是以下类型之一。对数值比较的支持使用 golang 大包比较运算符,例如:func (*Float
-
整数
-
Float(基于 float64,它支持从 -1.7e+308 到 +1.7e+308 之间的数字)
-
与以下正则表达式模式匹配的字符串:
^[-+]?([0-9]+[.])?[0-9]+$
- numberEquals
-
测试为指定的数字
numberEquals
是否等于value
参数中指定的数字。以下所有示例比较都会返回true
:# Values provided as a positive number numberEquals: 1 value: 1 # Comparison value provided as a string numberEquals: '1' value: 1 # Value provided as a string numberEquals: 1 value: '1' # Values provided as floats numberEquals: 5.0 value: 5.0 # Values provided as a negative number numberEquals: -1 value: -1
- numberLessThan
-
测试为指定的数字
numberLessThan
是否小于value
参数中指定的数字。例如:# Evaluates to true numberLessThan: 2 value: 1 # Evaluates to true numberLessThan: 2 value: 1.9 # Evaluates to false numberLessThan: 2 value: '2'
- numberLessThan等于
-
测试为指定的数字
numberLessThanEquals
是否小于或等于value
参数中指定的数字。例如:# Evaluates to true numberLessThanEquals: 2 value: 1 # Evaluates to true numberLessThanEquals: 2 value: 1.9 # Evaluates to true numberLessThanEquals: 2 value: '2' # Evaluates to false numberLessThanEquals: 2 value: 2.1
- numberGreaterThan
-
测试为指定的数字
numberGreaterThan
是否大于value
参数中指定的数字。例如:# Evaluates to true numberGreaterThan: 1 value: 2 # Evaluates to true numberGreaterThan: 1 value: 1.1 # Evaluates to false numberGreaterThan: 1 value: '1'
- numberGreaterThan等于
-
测试为指定的数字
numberGreaterThanEquals
是否大于或等于value
参数中指定的数字。例如:# Evaluates to true numberGreaterThanEquals: 1 value: 2 # Evaluates to true numberGreaterThanEquals: 1 value: 1.1 # Evaluates to true numberGreaterThanEquals: 1 value: '1' # Evaluates to false numberGreaterThanEquals: 1 value: 0.8
检查文件
以下比较运算符检查文件哈希值或检查文件或文件夹是否存在。
文件和文件夹操作员
- binaryExists
-
测试应用程序在当前路径中是否可用。例如:
binaryExists: '
foo
'注意
在 Linux 和 macOS 系统上,适用于名为的应用程序
foo
,其工作原理与以下 bash 命令相同:typefoo
>/dev/null 2>&1,其中$? == 0表示比较成功。在 Windows 系统上,适用于名为的应用程序
foo
,其工作原理与$LASTEXITCODE = 0表示成功比较& C:\Windows\System32\where.exe /Qfoo
的 PowerShell 命令相同。 - fileExists
-
测试指定路径上是否存在文件。您可以提供绝对路径或相对路径。如果您指定的位置存在并且是一个文件,则比较结果为。
true
例如:fileExists: '
/path/to/file
'注意
在 Linux 和 macOS 系统上,这与以下 bash 命令的工作原理相同:-d
/path/to/file
,其中$? == 0表示比较成功。在 Windows 系统上,这与 PowerShell 命令的工作原理相同Test-Path -Path '
C:\path\to\file
' -PathType 'Leaf'。 - folderExists
-
测试指定路径上是否存在文件夹。您可以提供绝对路径或相对路径。如果您指定的位置存在且为文件夹,则比较结果为。
true
例如:folderExists: '
/path/to/folder
'注意
在 Linux 和 macOS 系统上,这与以下 bash 命令的工作原理相同:-d
/path/to/folder
,其中$? == 0表示比较成功。在 Windows 系统上,这与 PowerShell 命令的工作原理相同Test-Path -Path '
C:\path\to\folder
' -PathType 'Container'。 - 文件 MD5Equals
-
测试文件的MD5哈希值是否等于指定值。例如:
fileMD5Equals: '
<MD5Hash>
' path: '/path/to/file
' - 文件 SHA1Equals
-
测试文件的SHA1哈希值是否等于指定值。例如:
fileSHA1Equals: '
<SHA1Hash>
' path: '/path/to/file
' - 文件 SHA256Equals
-
测试文件的SHA256哈希值是否等于指定值。例如:
fileSHA256Equals: '
<SHA256Hash>
' path: '/path/to/file
' - 文件 SHA512Equals
-
测试文件的SHA512哈希值是否等于指定值。例如:
fileSHA512Equals: '
<SHA512Hash>
' path: '/path/to/file
'