에서 문자열과 함께 따옴표 및 리터럴 사용 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

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형식이 지정된 파라미터를 입력하는 방법은 운영 체제에 따라 다릅니다.

명령줄에서 더 고급JSON으로 사용하려면 와 같은 명령줄 JSON 프로세서를 사용하여 JSON 문자열을 생성하는 jq것이 좋습니다. 에 대한 자세한 내용은 의 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

주의

가 명령을 에 PowerShell 전송하기 전에 일반적인 규칙 PowerShell 또는 CommandLineToArgvW 따옴표를 사용하여 명령을 해석할지 여부를 AWS CLI결정합니다. 를 사용하여 를 처리할 때는 PowerShell 백슬래시 로 문자를 이스케이프해야 CommandLineToArgvW합니다\.

CommandLineToArgvW 의 에 대한 자세한 PowerShell내용은 Microsoft DevBlogs 에서 CommandLineToArgvW로 따옴표와 백슬래시를 이상하게 처리하는 방법, Microsoft Docs 블로그에서 모든 사람이 잘못된 방식으로 명령줄 인수, Microsoft Docs 에서 W 함수를 따옴표를 참조하세요. 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\"}}]"

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