느낌표
5482 단어 bash
두 따옴표 로 문장 을 분리 하지 못 하 게 할 수도 있다. [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
위의 예 에서 알 수 있 듯 이 두 따옴표 는 변수 와 특정한 특수 기호 에 대한 전 의 를 차단 하지 않 고 작은 따옴표 안의 모든 내용 은 그대로 잘못된 출력 을 할 것 이다.
그러나 작은 따옴표 에서 작은 따옴표 로 변 수 를 일 으 키 면 변 수 는 정상적으로 나타 날 수 있 고 수학 에서 마이너스 가 플러스 인 것 과 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
성공할 때까지 명령 실행최근에 유용한 간단한 BASH 패턴: Run command every time it fails until it doesn't fail. 예시 작은 배치로 수십만 개의 레코드를 내보내야 하는 장기 실행 작업이 있었습니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.