Tanda kutip dan literal 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 dan literal dengan string di AWS CLI

Ada terutama dua cara tanda kutip tunggal dan ganda digunakan dalam AWS 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 JSON string. Ini rumit karena mencakup spasi dan tanda kutip ganda " " di sekitar setiap nama elemen dan nilai dalam JSON struktur. Cara Anda memasukkan parameter JSON -format pada baris perintah berbeda tergantung pada sistem operasi Anda.

Untuk JSON penggunaan yang lebih maju di baris perintah, pertimbangkan untuk menggunakan JSON prosesor baris perintah, sepertijq, untuk membuat JSON string. 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 JSON data, seperti pada contoh berikut. Anda tidak perlu melepaskan tanda kutip ganda yang tertanam dalam JSON string, karena mereka diperlakukan secara harfiah. Karena JSON terlampir dalam tanda kutip tunggal, setiap tanda kutip tunggal dalam string perlu 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 JSON data 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 tertanam dalam string. JSON Namun, Anda harus keluar dari setiap tanda kutip tunggal dengan backtick ` di 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 tertanam dalam string. JSON Namun, Anda harus keluar dari setiap tanda kutip ganda dengan backtick ` dalam JSON struktur, 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 ke AWS 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 yang dikutip 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 JSON data, gunakan Blobs untuk meneruskan JSON data 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 JSON data. Selain itu, untuk mencegah prosesor perintah salah menafsirkan tanda kutip ganda yang tertanam di dalamnyaJSON, Anda juga harus melarikan diri (mendahului dengan \ karakter garis miring terbalik) setiap tanda kutip ganda " dalam struktur JSON data 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.