

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan operator perbandingan dalam dokumen AWSTOE komponen
<a name="toe-comparison-operators"></a>

Anda dapat menggunakan operator perbandingan berikut dengan modul **[Menegaskan](toe-action-modules.md#action-modules-assertion)** tindakan dan dengan ekspresi bersyarat yang menggunakan. [jika MembangunSintaksis](toe-conditional-constructs.md#toe-conditional-if) Operator perbandingan dapat beroperasi pada satu nilai, misalnya`stringIsEmpty`, atau dapat membandingkan nilai dasar dengan nilai kedua (nilai variabel) untuk menentukan apakah ekspresi kondisional mengevaluasi atau. `true` `false`

Jika perbandingan beroperasi pada dua nilai, nilai kedua dapat berupa variabel rantai.

Saat membandingkan nilai dari jenis yang berbeda, konversi nilai berikut dapat terjadi sebelum perbandingan:
+ Untuk perbandingan numerik, jika nilai variabel adalah string, AWSTOE mengkonversi string ke angka sebelum evaluasi. Jika konversi tidak memungkinkan, perbandingan kembali`false`. Misalnya, jika nilai variabelnya`"1.0"`, konversi berfungsi, tetapi jika nilai variabelnya adalah `"a10"` konversi gagal.
+ Untuk perbandingan string, jika nilai variabel adalah angka, AWSTOE mengubahnya menjadi string sebelum evaluasi.

## Bandingkan string
<a name="toe-compare-strings"></a>

Operator perbandingan berikut bekerja dengan string untuk membandingkan nilai, untuk menguji spasi atau string kosong, atau untuk membandingkan nilai input dengan pola regex. Perbandingan string tidak peka huruf besar/kecil, dan tidak memangkas spasi dari awal atau akhir input string.

**Operator perbandingan string**
+ [stringIsEmpty](#stringIsEmpty)
+ [stringIsWhitespace](#stringIsWhitespace)
+ [stringEquals](#stringEquals)
+ [stringLessThan](#stringLessThan)
+ [stringLessThanEquals](#stringLessThanEquals)
+ [stringGreaterThan](#stringGreaterThan)
+ [stringGreaterThanEquals](#stringGreaterThanEquals)
+ [patternMatches](#patternMatches)

**stringIsEmpty**  
`stringIsEmpty`Operator kembali `true` jika string tertentu tidak mengandung karakter apapun. Contoh:  

```
# Evaluates to true
stringIsEmpty: ""

# Evaluates to false
stringIsEmpty: " "
				
# Evaluates to false
stringIsEmpty: "Hello."
```

**stringIsWhitespace**  
Tes jika string ditentukan untuk hanya `stringIsWhitespace` berisi spasi. Contoh:  

```
# Evaluates to true
stringIsWhitespace: "   "

# Evaluates to false
stringIsWhitespace: ""
				
# Evaluates to false
stringIsWhitespace: " Hello?"
```

**StringEquals**  
Tes jika string ditentukan untuk `stringEquals` adalah sama persis untuk string yang ditentukan dalam `value` parameter. Contoh:  

```
# 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**  
Tes jika string yang `stringLessThan` ditentukan untuk kurang dari string yang ditentukan dalam `value` parameter. Contoh:  

```
# 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'
```

**stringLessThanSama dengan**  
Tes jika string yang `stringLessThanEquals` ditentukan untuk kurang dari atau sama dengan string yang ditentukan dalam `value` parameter. Contoh:  

```
# 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**  
Tes jika string ditentukan untuk `stringGreaterThan` lebih besar dari string yang ditentukan dalam `value` parameter. Contoh:  

```
# 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'
```

**stringGreaterThanSama dengan**  
Tes jika string yang `stringGreaterThanEquals` ditentukan untuk lebih besar dari atau sama dengan string yang ditentukan dalam `value` parameter. Contoh:  

```
# 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'
```

**Pola Pertandingan**  
Menguji apakah string yang ditentukan dalam `value` parameter cocok dengan pola regex yang ditentukan untuk. `patternMatches` Perbandingan menggunakan [paket regexp Golang](https://pkg.go.dev/regexp), yang sesuai dengan sintaks. RE2 Untuk informasi selengkapnya tentang RE2 aturan, lihat repositori [google/re2](https://github.com/google/re2/wiki/Syntax) di. *GitHub*  
Contoh berikut menunjukkan kecocokan pola yang mengembalikan`true`:  

```
patternMatches: '^[a-z]+$'
value: 'ThisIsValue'
```

## Bandingkan angka
<a name="toe-compare-numbers"></a>

Operator perbandingan berikut bekerja dengan angka. Nilai yang diberikan untuk operator ini harus salah satu dari jenis berikut, sesuai dengan spesifikasi YAMAL. Support untuk perbandingan numerik menggunakan operator perbandingan paket besar golang, misalnya: [func](https://pkg.go.dev/math/big#Float.Cmp) (\$1Float) Cmp.
+ Bilangan Bulat
+ Float (berdasarkan float64, yang mendukung angka dari -1.7e\$1308 hingga\$11.7e\$1308)
+ String yang cocok dengan pola regex berikut: `^[-+]?([0-9]+[.])?[0-9]+$`

**Operator perbandingan angka**
+ [numberEquals](#numberEquals)
+ [numberLessThan](#numberLessThan)
+ [numberLessThanEquals](#numberLessThanEquals)
+ [numberGreaterThan](#numberGreaterThan)
+ [numberGreaterThanEquals](#numberGreaterThanEquals)

**NumberSama**  
Tes jika nomor yang `numberEquals` ditentukan untuk sama dengan angka yang ditentukan dalam `value` parameter. Semua contoh perbandingan berikut kembali: `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**  
Tes jika nomor yang `numberLessThan` ditentukan untuk kurang dari angka yang ditentukan dalam `value` parameter. Contoh:  

```
# Evaluates to true
numberLessThan: 2
value: 1

# Evaluates to true
numberLessThan: 2
value: 1.9

# Evaluates to false
numberLessThan: 2
value: '2'
```

**numberLessThanSama dengan**  
Tes jika angka yang `numberLessThanEquals` ditentukan untuk kurang dari atau sama dengan angka yang ditentukan dalam `value` parameter. Contoh:  

```
# 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**  
Tes jika angka yang `numberGreaterThan` ditentukan untuk lebih besar dari angka yang ditentukan dalam `value` parameter. Contoh:  

```
# Evaluates to true
numberGreaterThan: 1
value: 2

# Evaluates to true
numberGreaterThan: 1
value: 1.1

# Evaluates to false
numberGreaterThan: 1
value: '1'
```

**numberGreaterThanSama dengan**  
Tes jika angka yang `numberGreaterThanEquals` ditentukan untuk lebih besar dari atau sama dengan angka yang ditentukan dalam `value` parameter. Contoh:  

```
# 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
```

## Periksa file
<a name="toe-check-files"></a>

Operator perbandingan berikut memeriksa hash file atau memeriksa apakah ada file atau folder.

**Operator file dan folder**
+ [binaryExists](#binaryExists)
+ [fileExists](#fileExists)
+ [folderExists](#folderExists)
+ [fileMD5Equals](#fileMD5Equals)
+ [fileSHA1Equals](#fileSHA1Equals)
+ [fileSHA256Equals](#fileSHA256Equals)
+ [fileSHA512Equals](#fileSHA512Equals)

**BinaryExists**  
Menguji apakah aplikasi tersedia di jalur saat ini. Contoh:  

```
binaryExists: 'foo'
```
Pada sistem Linux dan macOS, untuk aplikasi bernama*foo*, ini bekerja sama dengan perintah bash berikut:**type *foo* >/dev/null 2>&1**, di mana **\$1? == 0** menunjukkan perbandingan yang berhasil.  
Pada sistem Windows, untuk aplikasi bernama*foo*, ini berfungsi sama dengan PowerShell perintah di **& C:\$1Windows\$1System32\$1where.exe /Q *foo*** mana **\$1LASTEXITCODE = 0** menunjukkan perbandingan yang berhasil.

**FileExists**  
Menguji apakah file ada di jalur yang ditentukan. Anda dapat memberikan jalur absolut atau relatif. Jika lokasi yang Anda tentukan ada dan merupakan file, perbandingan akan dievaluasi. `true` Contoh:  

```
fileExists: '/path/to/file'
```
Pada sistem Linux dan macOS, ini bekerja sama dengan perintah bash berikut:**-d */path/to/file***, di mana **\$1? == 0** menunjukkan perbandingan yang berhasil.  
Pada sistem Windows, ini bekerja sama dengan PowerShell perintah**Test-Path -Path '*C:\$1path\$1to\$1file*' -PathType 'Leaf'**.

**FolderExists**  
Menguji apakah folder ada di jalur yang ditentukan. Anda dapat memberikan jalur absolut atau relatif. Jika lokasi yang Anda tentukan ada dan merupakan folder, perbandingan akan dievaluasi. `true` Contoh:  

```
folderExists: '/path/to/folder'
```
Pada sistem Linux dan macOS, ini bekerja sama dengan perintah bash berikut:**-d */path/to/folder***, di mana **\$1? == 0** menunjukkan perbandingan yang berhasil.  
Pada sistem Windows, ini bekerja sama dengan PowerShell perintah**Test-Path -Path '*C:\$1path\$1to\$1folder*' -PathType 'Container'**.

**Berkas MD5 Sama**  
Menguji apakah MD5 hash file sama dengan nilai tertentu. Contoh:  

```
fileMD5Equals: '<MD5Hash>'
path: '/path/to/file'
```

**Berkas SHA1 Sama**  
Menguji apakah SHA1 hash file sama dengan nilai tertentu. Contoh:  

```
fileSHA1Equals: '<SHA1Hash>'
path: '/path/to/file'
```

**Berkas SHA256 Sama**  
Menguji apakah SHA256 hash file sama dengan nilai tertentu. Contoh:  

```
fileSHA256Equals: '<SHA256Hash>'
path: '/path/to/file'
```

**Berkas SHA512 Sama**  
Menguji apakah SHA512 hash file sama dengan nilai tertentu. Contoh:  

```
fileSHA512Equals: '<SHA512Hash>'
path: '/path/to/file'
```