

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

# Menggunakan tanda kutip dan literal dengan string di AWS CLI
<a name="cli-usage-parameters-quoting-strings"></a>

Ada terutama dua cara tanda kutip tunggal dan ganda digunakan dalam AWS CLI.
+ [Menggunakan tanda kutip di sekitar string yang berisi spasi putih](#cli-usage-parameters-quoting-strings-around)
+ [Menggunakan tanda kutip di dalam string](#cli-usage-parameters-quoting-strings-containing)

## Menggunakan tanda kutip di sekitar string yang berisi spasi putih
<a name="cli-usage-parameters-quoting-strings-around"></a>

Nama parameter dan nilainya dipisahkan oleh spasi pada baris perintah. Jika nilai string berisi spasi tertanam, maka Anda harus mengelilingi seluruh string dengan tanda kutip untuk AWS CLI mencegah salah menafsirkan ruang sebagai pembagi antara nilai dan nama parameter berikutnya. Jenis tanda kutip yang Anda gunakan tergantung pada sistem operasi yang Anda gunakan. AWS CLI 

------
#### [ Linux and macOS ]

Gunakan tanda kutip tunggal `' '` 

```
$ aws ec2 create-key-pair --key-name 'my key pair'
```

Untuk informasi selengkapnya tentang penggunaan tanda kutip, lihat dokumentasi pengguna untuk shell pilihan Anda.

------
#### [ PowerShell ]

**Kutipan tunggal (disarankan)**

Tanda kutip tunggal `' '` disebut `verbatim` string. String diteruskan ke perintah persis seperti yang Anda ketikkan, yang berarti PowerShell variabel tidak akan melewatinya.

```
PS C:\> aws ec2 create-key-pair --key-name 'my key pair'
```

**Kutipan ganda**

Tanda kutip ganda `" "` disebut `expandable` string. Variabel dapat dilewatkan dalam string yang dapat diperluas.

```
PS C:\> aws ec2 create-key-pair --key-name "my key pair"
```

Untuk informasi selengkapnya tentang menggunakan tanda kutip, lihat [Tentang Aturan Mengutip](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) di *Microsoft PowerShell Docs*.

------
#### [ Windows command prompt ]

Gunakan tanda `" "` kutip ganda.

```
C:\> aws ec2 create-key-pair --key-name "my key pair"
```

------

Secara opsional, Anda dapat memisahkan nama parameter dari nilai dengan tanda sama dengan `=` bukan spasi. Ini biasanya diperlukan hanya jika nilai parameter dimulai dengan tanda hubung.

```
$ aws ec2 delete-key-pair --key-name=-mykey
```

## Menggunakan tanda kutip di dalam string
<a name="cli-usage-parameters-quoting-strings-containing"></a>

String mungkin berisi tanda kutip, dan shell Anda mungkin memerlukan kutipan keluar agar berfungsi dengan baik. Salah satu jenis nilai parameter umum adalah string JSON. Ini kompleks karena mencakup spasi dan tanda kutip ganda `" "` di sekitar setiap nama elemen dan nilai dalam struktur JSON. Cara memasukkan parameter yang berformat JSON pada baris perintah berbeda-beda tergantung sistem operasi Anda. 

Untuk penggunaan JSON yang lebih maju di baris perintah, pertimbangkan untuk menggunakan prosesor JSON baris perintah, seperti`jq`, untuk membuat string JSON. Untuk informasi lebih lanjut tentang`jq`, lihat [repositori jq](http://stedolan.github.io/jq/) di. *GitHub*

------
#### [ Linux and macOS ]

Untuk Linux dan macOS untuk menafsirkan string secara harfiah menggunakan tanda kutip tunggal `' '` untuk melampirkan struktur data JSON, seperti pada contoh berikut. Anda tidak perlu melepaskan tanda kutip ganda yang disematkan dalam string JSON, karena mereka diperlakukan secara harfiah. Karena JSON terlampir dalam tanda kutip tunggal, setiap tanda kutip tunggal dalam string harus diloloskan, ini biasanya dilakukan dengan menggunakan garis miring terbalik sebelum kutipan tunggal. `\'`

```
$ aws ec2 run-instances \
    --image-id ami-12345678 \
    --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'
```

Untuk informasi selengkapnya tentang penggunaan tanda kutip, lihat dokumentasi pengguna untuk shell pilihan Anda.

------
#### [ PowerShell ]

Gunakan tanda kutip tunggal `' '` atau tanda kutip ganda. `" "`

**Kutipan tunggal (disarankan)**

Tanda kutip tunggal `' '` disebut `verbatim` string. String diteruskan ke perintah persis seperti yang Anda ketikkan, yang berarti PowerShell variabel tidak akan melewatinya.

Karena struktur data JSON menyertakan tanda kutip ganda, kami menyarankan tanda kutip **tunggal** `' '` untuk melampirkannya. Jika Anda menggunakan tanda kutip **tunggal**, Anda tidak perlu melepaskan tanda kutip **ganda** yang disematkan dalam string JSON. Namun, Anda harus keluar dari setiap tanda kutip **tunggal** dengan backtick ``` dalam struktur JSON.

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'
```

**Kutipan ganda**

Tanda kutip ganda `" "` disebut `expandable` string. Variabel dapat dilewatkan dalam string yang dapat diperluas.

Jika Anda menggunakan tanda kutip **ganda**, Anda tidak perlu melepaskan tanda kutip **tunggal** yang disematkan dalam string JSON. Namun, Anda harus keluar dari setiap tanda kutip **ganda** dengan backtick ``` dalam struktur JSON, seperti contoh berikut.

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings "[{`"DeviceName`":`"/dev/sdb`",`"Ebs`":{`"VolumeSize`":20,`"DeleteOnTermination`":false,`"VolumeType`":`"standard`"}}]"
```

Untuk informasi selengkapnya tentang menggunakan tanda kutip, lihat [Tentang Aturan Mengutip](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) di *Microsoft PowerShell Docs*.

**Awas**  
Sebelum PowerShell mengirim perintah ke AWS CLI, itu menentukan apakah perintah Anda ditafsirkan menggunakan aturan tipikal PowerShell atau `CommandLineToArgvW` kutipan. Saat PowerShell proses menggunakan`CommandLineToArgvW`, Anda harus melarikan diri dari karakter dengan garis miring terbalik`\`.  
*Untuk informasi lebih lanjut tentang `CommandLineToArgvW` in PowerShell, lihat [Ada apa dengan perlakuan aneh tanda kutip dan garis miring terbalik oleh CommandLineToArgv W](https://devblogs.microsoft.com/oldnewthing/20100917-00/?p=12833) di *Microsoft DevBlogs*, [Semua orang mengutip argumen baris perintah dengan cara yang salah di](https://docs.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way) *Blog Microsoft Docs*, dan fungsi [CommandLineToArgvW di](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw#remarks) Microsoft Docs.*  
**Kutipan tunggal**  
Tanda kutip tunggal `' '` disebut `verbatim` string. String diteruskan ke perintah persis seperti yang Anda ketikkan, yang berarti PowerShell variabel tidak akan melewatinya. Melarikan diri dari karakter dengan garis miring terbalik`\`.  

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings '[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]'
```
**Kutipan ganda**  
Tanda kutip ganda `" "` disebut `expandable` string. Variabel dapat dilewatkan dalam `expandable` string. Untuk string kutip ganda Anda harus melarikan diri dua kali menggunakan *`\$1* untuk setiap kutipan alih-alih hanya menggunakan backtick. Backtick lolos dari garis miring terbalik, dan kemudian garis miring terbalik digunakan sebagai karakter pelarian untuk proses tersebut. `CommandLineToArgvW`  

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings "[{`\"DeviceName`\":`\"/dev/sdb`\",`\"Ebs`\":{`\"VolumeSize`\":20,`\"DeleteOnTermination`\":false,`\"VolumeType`\":`\"standard`\"}}]"
```
**Gumpalan (disarankan)**  
Untuk melewati aturan PowerShell kutipan untuk input data JSON, gunakan Blobs untuk meneruskan data JSON Anda langsung ke file. AWS CLI Untuk informasi lebih lanjut tentang Blobs, lihat[blob](cli-usage-parameters-types.md#parameter-type-blob).

------
#### [ Windows command prompt ]

Prompt perintah Windows memerlukan tanda kutip ganda `" "` untuk melampirkan struktur data JSON. Juga, untuk mencegah prosesor perintah salah menafsirkan tanda kutip ganda yang disematkan di JSON, Anda juga harus melarikan diri (mendahului dengan `\` karakter garis miring terbalik) setiap tanda kutip ganda `"` dalam struktur data JSON itu sendiri, seperti pada contoh berikut. 

```
C:\> aws ec2 run-instances ^
    --image-id ami-12345678 ^
    --block-device-mappings "[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]"
```

Hanya tanda kutip ganda terluar yang tidak lolos.

------