문자열이 포함된 따옴표 및 리터럴 AWS CLI - AWS Command Line Interface

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

문자열이 포함된 따옴표 및 리터럴 AWS CLI

AWS CLI에는 주로 두 가지 방법으로 작은따옴표와 큰따옴표가 사용됩니다.

공백이 포함된 문자열 주위에 따옴표 사용

파라미터 이름과 그 값은 명령줄에서 공백으로 구분됩니다. 문자열 값에 포함된 공백이 있는 경우 공백이 값과 다음 매개 변수 이름 사이의 구분자로 잘못 해석되지 않도록 전체 문자열을 따옴표로 묶어야 합니다. AWS CLI 사용하는 따옴표 유형은 실행 중인 운영 체제에 따라 다릅니다. AWS CLI

Linux and macOS

작은따옴표(' ')를 사용합니다.

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

따옴표 사용에 대한 자세한 내용은 권장 셸에 대한 사용 설명서를 참조하십시오.

PowerShell

작은따옴표(권장)

작은따옴표 ' 'verbatim 문자열이라고 합니다. 문자열은 입력한 그대로 명령에 전달되므로 PowerShell 변수가 전달되지 않습니다.

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

큰따옴표

큰따옴표 " "expandable 문자열이라고 합니다. 변수는 확장 가능한 문자열로 전달될 수 있습니다.

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

따옴표 사용에 대한 자세한 내용은 Microsoft PowerShell Docs의 인용 규칙 정보를 참조하십시오.

Windows command prompt

큰따옴표(" ")를 사용합니다.

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

선택적으로, 공백 대신에 등호(=)를 사용하여 파라미터 이름을 값에서 분리할 수 있습니다. 일반적으로 파라미터 값이 하이픈으로 시작되는 경우에만 필요합니다.

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

문자열 안에 따옴표 사용

문자열에는 따옴표가 포함될 수 있으며 셸이 제대로 작동하려면 따옴표를 이스케이프 처리해야 할 수 있습니다. 일반적인 매개 변수 값 유형 중 하나는 문자열입니다. JSON JSON구조의 각 요소 이름과 값 " " 주위에 공백과 큰따옴표가 포함되므로 복잡합니다. 명령줄에 JSON -formatted 매개 변수를 입력하는 방법은 운영 체제에 따라 다릅니다.

명령줄을 좀 더 JSON 고급으로 사용하려면 명령줄 JSON 프로세서 (예jq:) 를 사용하여 문자열을 만드는 것을 고려해 보십시오. JSON 에 대한 jq 자세한 내용은 의 jq 리포지토리를 참조하십시오. GitHub

Linux and macOS

Linux 및 macOS에서 문자열을 해석하려면 다음 예제와 같이 문자 그대로 ' ' 작은따옴표를 사용하여 JSON 데이터 구조를 묶습니다. JSON문자열에 포함된 큰따옴표는 문자 그대로 취급되므로 이스케이프 처리하지 않아도 됩니다. JSON는 작은따옴표로 묶여 있으므로 문자열에 있는 작은따옴표는 이스케이프 처리해야 합니다. 이 경우 일반적으로 작은따옴표 앞에 백슬래시를 사용합니다. \'

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

따옴표 사용에 대한 자세한 내용은 권장 셸에 대한 사용 설명서를 참조하십시오.

PowerShell

작은따옴표(' ') 또는 큰따옴표(" ")를 사용합니다.

작은따옴표(권장)

작은따옴표 ' 'verbatim 문자열이라고 합니다. 문자열은 입력한 그대로 명령에 전달되므로 변수가 전달되지 않습니다. PowerShell

JSON데이터 구조에는 큰따옴표가 포함되므로 이를 작은 ' '따옴표로 묶는 것이 좋습니다. 작은따옴표를 사용하는 경우 문자열에 포함된 큰따옴표를 이스케이프 처리할 필요가 없습니다. JSON 하지만 구조 내에서 각 작은따옴표를 ` 백틱으로 이스케이프해야 합니다. JSON

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

큰따옴표

큰따옴표 " "expandable 문자열이라고 합니다. 변수는 확장 가능한 문자열로 전달될 수 있습니다.

큰따옴표를 사용하는 경우 문자열에 포함된 작은따옴표를 이스케이프 처리할 필요가 없습니다. JSON 하지만 다음 예제와 같이 JSON 구조 ` 내에서 각 큰따옴표를 백틱으로 이스케이프해야 합니다.

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

따옴표 사용에 대한 자세한 내용은 Microsoft PowerShell Docs의 인용 규칙 정보를 참조하십시오.

주의

명령을 에 PowerShell 보내기 전에 명령이 일반적인 인용 AWS CLI규칙을 사용하여 해석되는지 PowerShell 아니면 CommandLineToArgvW 인용 규칙을 사용하여 해석되는지를 확인합니다. 를 사용하여 PowerShell 처리할 때는 CommandLineToArgvW \ 백슬래시를 사용하여 문자를 이스케이프 처리해야 합니다.

in에 대한 자세한 내용은 CommandLineToArgvW Microsoft에서 PowerShell W의 따옴표와 백슬래시를 이상하게 처리하는 문제 DevBlogs, Microsoft 문서 블로그의 모든 사람이 명령줄 인수를 잘못된 방식으로 인용함, Microsoft 문서의 W CommandLineToArgv함수를 참조하십시오. CommandLineToArgv

작은따옴표

작은따옴표 ' 'verbatim 문자열이라고 합니다. 문자열은 입력한 그대로 명령에 전달되므로 변수가 전달되지 않습니다. PowerShell 백슬래시(\)로 문자를 이스케이프 처리합니다.

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

큰따옴표

큰따옴표 " "expandable 문자열이라고 합니다. 변수는 expandable 문자열로 전달될 수 있습니다. 큰따옴표로 묶인 문자열의 경우 다음을 사용하여 두 번 이스케이프해야 합니다.`\ 각 따옴표마다 백틱만 사용하는 대신 백틱은 백슬래시를 이스케이프하며, 백슬래시는 CommandLineToArgvW 프로세스의 이스케이프 문자로 사용됩니다.

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

Blob(권장)

JSON데이터 입력에 대한 PowerShell 인용 규칙을 우회하려면 Blobs를 사용하여 JSON 데이터를 에 직접 전달하십시오. AWS CLI Blob에 대한 자세한 내용은 Blob 섹션을 참조하세요.

Windows command prompt

Windows 명령 프롬프트에서는 데이터 구조를 큰따옴표로 묶어야 " " 합니다. JSON 또한 명령 프로세서가 에 포함된 큰따옴표를 잘못 해석하지 않도록 하려면 다음 예제와 같이 JSON 데이터 구조 자체 " 내의 각 큰따옴표를 이스케이프 (앞에 백슬래시 \ 문자 사용) 해야 합니다. JSON

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

가장 바깥쪽 큰따옴표만 이스케이프되지 않습니다.