Tanda kutip dengan string di AWS CLI - AWS Command Line Interface

Dokumentasi ini AWS CLI hanya untuk Versi 1. Untuk dokumentasi yang terkait dengan Versi 2 AWS CLI, lihat Panduan Pengguna Versi 2.

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

Tanda kutip dengan string di AWS CLI

Ada terutama dua cara tanda kutip tunggal dan ganda digunakan dalamAWS CLI.

Menggunakan tanda kutip di sekitar string yang berisi spasi putih

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

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 Anda memasukkan parameter yang berformat JSON pada baris perintah berbeda-beda tergantung dari sistem operasi Anda.

Untuk penggunaan JSON yang lebih maju di baris perintah, pertimbangkan untuk menggunakan prosesor JSON baris perintah, sepertijq, untuk membuat string JSON. Untuk informasi lebih lanjut tentangjq, lihat repositori 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 di Microsoft PowerShell Docs.

Awas

Sebelum PowerShell mengirim perintah keAWS CLI, itu menentukan apakah perintah Anda ditafsirkan menggunakan aturan tipikal PowerShell atau CommandLineToArgvW kutipan. Saat PowerShell proses menggunakanCommandLineToArgvW, 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 di Microsoft DevBlogs, Semua orang mengutip argumen baris perintah dengan cara yang salah di Blog Microsoft Docs, dan fungsi CommandLineToArgvW di 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 `\ 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, lihatblob.

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.