Bash 따옴표 그 거.
bash 스 크 립 트 에는 세 가지 따옴표 가 있 습 니 다.
1. 单引号 ' 2. 双引号 " 3. 反引号 ` 单引号 两个单引号包围起来的字符串就是普通的字符串,它将保留原始的字面意思. 双引号 两个双引号包围起来的字符串,部分特殊字符将起到它们的作用. 这些特殊字符有: 美元符$, 反斜杠\, 反引号, 感叹号!. 反引号 两个反引号包围起来的字符串,将作为命令来运行, 执行的输出结果作为该反引号的内容,称为命令替换, 它有另一种更好的写法: $(command)
우 리 는 몇 가지 예 를 들 어 이 세 가지 따옴표 의 특성 을 더욱 직접적 으로 이해 합 니 다.
1
2
3
4
igi@gentoo ~ $
echo
'$HOME'
$HOME
igi@gentoo ~ $
echo
"$HOME"
/home/igi
주: 홈 은 내부 변수
2. 역 슬 래 쉬\싱글, 더 블 따옴표 에서 의 표현: 더 블 따옴표 에 있 는\\는 그 뒤의 문 자 를 특별한 의 미 를 가지 게 하거나 원래 의 특수 한 의 미 를 잃 게 합 니 다. 작은 따옴표 에 있 는\는 글자 의 뜻 을 유지 합 니 다.
1
2
3
4
igi@gentoo ~ $
echo
'\$HOME'
\$HOME
igi@gentoo ~ $
echo
"\$HOME"
$HOME
주: 작은 따옴표 의\\, 뒤에 $를 따라 갑 니 다. 여기 서 전의 가 발생 하여 $가 특별한 의 미 를 잃 고 일반 문자 로 변 합 니 다.
3. 반 따옴표 와 다른 두 따옴표 의 차이: 반 따옴표 로 둘러싸 인 문자열 이 실 행 됩 니 다. 결 과 를 얻 습 니 다.
1
2
3
4
5
6
igi@gentoo ~ $
echo
'date'
date
igi@gentoo ~ $
echo
"date"
date
igi@gentoo ~ $
echo
`
date
`
Fri Dec 3 18:34:09 CST 2010
주: 반 따옴표 에 있 는 date 는 명령 으로 실 행 됩 니 다. 명령 의 출력 정 보 를 포함 합 니 다.
그들의 차 이 를 알 게 되 었 으 니, 우 리 는 흔히 볼 수 있 는 문 제 를 이야기 합 시다.
1. 반 따옴표 '를 작은 따옴표 로 쓴다'
어 쩔 수 없 이 그들 은 확실히 닮 았 다. 일부 책의 인쇄 글씨체 의 차이 가 높 지 않 거나 인쇄 품질 이 통과 하지 못 해서 많은 초보 자 들 이 잘못 을 인정 하고 반 따옴표 '를 작은 따옴표 로 쓴다.만약 당신 이 반 따옴표 가 어디 에 있 는 지 모른다 면, Esc 키 아래 의 그 버튼 을 보 세 요. 그것 이 바로 반 따옴표 입 니 다.물론 어떤 사람들 이 책 을 읽 는 데 주의 하지 않 는 것 도 흔 한 일이 다.우리 가 반 따옴표 와 작은 따옴표 작용 의 차 이 를 알 게 된다 면 언제 작은 따옴표 를 써 야 하 는 지, 언제 작은 따옴표 를 써 야 하 는 지 알 게 될 것 이다.문자열 이 필요 할 때 작은 따옴표 사용 하기;명령 의 출력 을 포착 하려 면 반 따옴표 를 사용 하 십시오.
2. 따 옴 표를 붙 이 는 것 을 잊 어 버 리 는 것 은 항상 불필요 하지 않 습 니 다. 그 에 둘러싸 인 데 이 터 는 안전 해 지고 bash 에 의 해 절개 되 지 않 습 니 다.
1
2
3
4
5
6
7
8
9
10
igi@gentoo ~ $
seq
3
1
2
3
igi@gentoo ~ $
echo
`
seq
3`
1 2 3
igi@gentoo ~ $
echo
"`seq 3`"
1
2
3
주: seq 출력 은 줄 바 꿈 정 보 를 포함 하지만 echo ` seq 3 '는 줄 바 꿈 자 를 잃 어 버 렸 습 니 다. bash 는 해석 할 때' seq 3 '의 출력 결 과 는 3 개의 독립 된 문자 라 고 생각 하기 때 문 입 니 다. 해석 후 echo 1, 2, 3 과 같 습 니 다 (이 과정 에서 bash 는 많은 일 을 했 습 니 다. 관심 이 있 으 면 bash 해석 순 서 를 알 수 있 습 니 다).한편, echo 'seq 3' 일 때 bash 는 'seq 3' 의 출력 결 과 를 하나의 전체 로 취급 하기 때문에 출력 결 과 는 bash 에 의 해 분리 되 지 않 고 줄 바 꿈 자 를 유지 할 수 있 습 니 다.따라서 변수 나 명령 교체 의 완전한 정 보 를 보존 해 야 합 니 다. 특히 줄 바 꿈 자 를 사용 할 때 는 작은 따옴표 를 끼 워 보험 을 드 는 것 을 기억 하 세 요. 항상 작은 따옴표 를 붙 이 는 것 이 좋 은 습관 입 니 다."command"는 모두 $var, "command"보다 훨씬 안전 합 니 다. 많은 경우 에 앞의 것 이 야 말로 당신 이 원 하 는 결과 입 니 다. 당신 이 무엇 을 하고 있 는 지 알 지 않 으 면 쉽게 작은 따옴표 를 생략 하지 마 세 요.
3. 따옴표 가 항상 혼 란 스 러 운 따옴표 에는 다른 따옴표 가 포함 되 어 있 습 니 다. 작은 따옴표 와 작은 따옴표 의 문자 표현 을 이해 할 수만 있다 면 파악 하기 어렵 지 않 습 니 다.
1
2
3
4
5
6
igi@gentoo ~ $
echo
"abc\"abc"
abc"abc
igi@gentoo ~ $
echo
"abc\'abc"
abc'abc
igi@gentoo ~ $
echo
"abc\`abc"
abc`abc
보다 시 피 따옴표 에 다른 따옴표 를 넣 는 것 은 쉽 습 니 다. 당신 은 역 슬 래 쉬\전의 로 추가 할 따옴표 (따옴표 에 작은 따옴표 를 넣 으 면 전의 하지 않 아 도 됩 니 다) 를 사용 해 야 합 니 다. 그러면 작은 따옴표 에 이렇게 간단 합 니까?
1
2
3
4
igi@gentoo ~ $
echo
'abc"abc'
abc"abc
igi@gentoo ~ $
echo
'abc`abc'
abc`abc
여기까지 정말 간단 합 니 다. 작은 따옴표 에는 모두 일반 문자 이기 때문에 전의 가 전혀 필요 없습니다. 만약 에 역 슬 래 쉬\를 추가 하면 역 슬 래 쉬 는 여전히 자신 입 니 다. 직접 인쇄 합 니 다.
1
2
igi@gentoo ~ $
echo
'abc\"\`abc'
abc\"\`abc
문제 가 생 겼 습 니 다. 작은 따옴표 에는 작은 따옴표 가 어떻게 포함 되 어 있 습 니까? 이 럴 때 는 역 슬 래 쉬\도 소 용이 없습니다. 작은 따옴표 만 직접 쓰 면 bash 는 따옴표 가 아직 끝나 지 않 았 다 고 생각 할 것 입 니 다. 좋 습 니 다. 불행 하 게 도 이런 문제 에 부 딪 히 면 해결 할 방법 이 있 습 니 다.
1
2
3
4
5
6
igi@gentoo ~ $
echo
$
'abc\'abc'
abc'abc
igi@gentoo ~ $
echo
-e
'abc\x27abc'
abc'abc
igi@gentoo ~ $
echo
'abc'
\
''
abc'
abc'abc
첫 번 째 방법 은 bash 특유 의 $'string' 사이 에서 역 슬 래 쉬 까지 모두 전의 문 자 를 사용 하 는 것 입 니 다. 두 번 째 방법 은 작은 따옴표 의 ASCII 코드 를 통 해 작은 따옴표 를 인쇄 하 는 것 입 니 다. 세 번 째 방법 은 명령 을 차단 하고 중간 에 작은 따옴표 를 삽입 하 는 것 입 니 다. 일반적으로 첫 번 째 방법 이 가장 우아 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.