반응형
Bash에서 작은 따옴표 문자열에서 작은 따옴표를 이스케이프하는 방법은 무엇입니까?
이렇게 Bash에 문자열을 표시하고 싶습니다.
I'm a student
물론 이렇게 할 수 있습니다
echo "I'm a student"
그러나 문자열 주위에 작은 따옴표를 사용하면서 이것을 수행하는 방법은 무엇입니까?
echo 'I\'m a student'
작동하지 않습니다. 그러나 다음은 작동합니다.
echo $'I\'m a student'
bash의 man 페이지에서 :
백 슬래시가 앞에있는 경우에도 작은 따옴표 사이에 작은 따옴표를 사용할 수 없습니다.
.... $ 'string'
형태의 단어는 특별히 취급됩니다. 이 단어는 ANSI C 표준에 지정된대로 백 슬래시 이스케이프 문자가 대체 된 문자열로 확장됩니다.
Glenn Jackman이 언급 한 "추악한"솔루션은 실제로 최상위 답변으로 나열되어야합니다. 그것은 잘 작동하고 실제로 어떤 상황에서는 아름답습니다.
'I'"'"'m a student'
이렇게하면 작은 따옴표가있는 문자열이 종료되고 작은 따옴표 I
가 포함 된 큰 따옴표 문자열이 즉시 시작되고 다른 작은 따옴표 문자열이 시작됩니다. 그런 다음 Bash는 모든 연속 문자열을 하나로 연결합니다.
아름다운!
아래 예제는 이스케이프 된 작은 따옴표 \'
가 기술적으로 두 개의 작은 따옴표 인수 사이에 있기 때문에 작동합니다.
echo 'I'\''m a student'
반응형
'Nice programing' 카테고리의 다른 글
디버깅하는 동안 iOS 애플리케이션 샌드 박스에서 파일의 내용을 볼 수 있습니까? (0) | 2020.11.29 |
---|---|
주어진 달의 첫날과 마지막 날을 얻는 방법 (0) | 2020.11.29 |
Java 8에서 여러 필드 이름으로 그룹화 (0) | 2020.11.29 |
Vue @click 이벤트 핸들러에 매개 변수를 전달하는 방법 (0) | 2020.11.29 |
정규식으로 괄호 안의 텍스트를 제거하려면 어떻게해야합니까? (0) | 2020.11.29 |