느낌표

5482 단어 bash
변 수의 값 을 참조 하려 면 작은 따옴표 를 사용 하 는 것 을 추천 합 니 다.두 인용 부 호 를 사용 하면 변수 명 [2] 접두사 ($), 뒷 인용 부 (`) 와 전의 부 (\) 를 제외 하고 셸 이 인용 부호 의 다른 모든 특수 문 자 를 설명 하지 않 습 니 다.[3] 작은 따옴표 로 사용 할 때 $는 특수 문자 로 여 겨 집 니 다. 작은 따옴표 로 인 한 변 수 를 참조 할 수 있 습 니 다 ("$variable"). 그것 도 $variable 가 그 값 으로 대 체 됩 니 다.
두 따옴표 로 문장 을 분리 하지 못 하 게 할 수도 있다. [4] 하나의 매개 변 수 는 두 개의 따옴표 로 인해 하나의 단원 으로 볼 수 있 습 니 다. 그러면 매개 변수 에 공백 문자 가 포함 되 어 있어 도 셸 에 의 해 분리 되 지 않 습 니 다.
 
작은 따옴표 (') 는 작은 따옴표 와 유사 하지만 변 수 를 설명 할 수 없습니다. 따라서 작은 따옴표 에 있 는 문자 $의 특별한 뜻 은 잘못 되 었 습 니 다.작은 따옴표 에 서 는 문자 '를 제외 하고 모든 특수 문 자 는 글자 의 뜻 일 뿐이다.작은 따옴표 (전역 참조) 는 작은 따옴표 (부분 참조) 보다 인용 부분 을 더 엄격하게 처리 합 니 다.
 
느낌표 (!) 를 이벤트 표시 기 (event designator) 라 고 부 르 며. bashhistory 의 명령 행 항목 참조
!!     이전 명령 을 참조 하 다.이것 은 `! -1 '의 동의어.string 은 최근 string 으로 시작 하 는 명령 을 참조 합 니 다.!?string[?]
최근 string 을 포함 하 는 명령 을 참조 합 니 다.끝의string 뒤에 새 줄 문자 가 붙 어 있 으 면 무시 할 수 있 습 니 다.
 
명령 행 에서 느낌표 "!"를 두 따옴표 에 넣 고 명령 을 실행 하 는 데 오류 가 발생 할 수 있 습 니 다. 느낌표 가 하나의 역사 명령 으로 해석 되 었 기 때 문 입 니 다. 그러나 한 스 크 립 트 파일 에서 이렇게 쓰 는 것 은 정확 합 니 다. 본문 에서 Bash 의 역사 체제 가 비활성화 되 었 기 때 문 입 니 다.
root@test-desktop:/home/James/mypro/Linux-Pro/Network# !!
ls
hostname_to_ip  hostname_to_ip.c  hostname_to_ip.c~  ip_to_hostname  ip_to_hostname.c  ip_to_hostname.c~  Makefile  Makefile~
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "$CLASSPATH"
.:/lib:/opt/jdk1.5.0_22/jre/lib:
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo '$CLASSPATH'
$CLASSPATH
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "$(ls)"
hostname_to_ip
hostname_to_ip.c
hostname_to_ip.c~
ip_to_hostname
ip_to_hostname.c
ip_to_hostname.c~
Makefile
Makefile~
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo '$(ls)'
$(ls)
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "!"
-bash: !: event not found
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo '!'
!
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo !
!
root@test-desktop:/home/James/mypro/Linux-Pro/Network# ls
hostname_to_ip  hostname_to_ip.c  hostname_to_ip.c~  ip_to_hostname  ip_to_hostname.c  ip_to_hostname.c~  Makefile  Makefile~
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "!"
-bash: !: event not found
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "!!"
echo "ls"
ls
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "$(!!)"
echo "$(echo "ls")"
ls
root@test-desktop:/home/James/mypro/Linux-Pro/Network# ls
hostname_to_ip  hostname_to_ip.c  hostname_to_ip.c~  ip_to_hostname  ip_to_hostname.c  ip_to_hostname.c~  Makefile  Makefile~
root@test-desktop:/home/James/mypro/Linux-Pro/Network# echo "$(!!)"
echo "$(ls)"
hostname_to_ip
hostname_to_ip.c
hostname_to_ip.c~
ip_to_hostname
ip_to_hostname.c
ip_to_hostname.c~
Makefile
Makefile~
 
root@test-desktop:/home/James/mypro/Linux-Pro/Network# 
 
셸 의 작은 따옴표, 작은 따옴표 와 두 개의 작은 따옴표 의 차 이 는 다음 과 같은 예 를 보십시오.
 
[root@test] a=55[root@test] echo $a
55[root@test] echo '$a'
$a
[root@test] echo ''$a''#注意此处是两个单引不是一个双引55

위의 예 에서 알 수 있 듯 이 두 따옴표 는 변수 와 특정한 특수 기호 에 대한 전 의 를 차단 하지 않 고 작은 따옴표 안의 모든 내용 은 그대로 잘못된 출력 을 할 것 이다.
 
 
그러나 작은 따옴표 에서 작은 따옴표 로 변 수 를 일 으 키 면 변 수 는 정상적으로 나타 날 수 있 고 수학 에서 마이너스 가 플러스 인 것 과 같다.
 
 
 
 
 

좋은 웹페이지 즐겨찾기