셸 스 크 립 트 의 $(), $(), ` 와 ${} 의 차이
1. bash 에서
$( )
와 ` `
(반 따옴표) 는 모두 명령 으로 교체 된다.명령 교체 와 변수 교체 의 차이 가 많 지 않 습 니 다. 명령 행 을 재 구성 하 는 데 사 용 됩 니 다. 따옴표 에 있 는 명령 행 을 먼저 완성 한 다음 그 결 과 를 교체 한 다음 에 새로운 명령 행 을 재 구성 합 니 다.
$() 와 ''
조작 에 있어 서 이 두 가 지 는 모두 해당 하 는 효 과 를 얻 었 지만 $() 를 사용 하 는 것 을 권장 합 니 다. 이 유 는 다음 과 같 습 니 다.
'' 매우 쉽게 '와 혼 란 스 럽 게 한다. 특히 초보 자 에 게 는 $() 가 비교적 직관 적 이다.마지막 으로 $() 의 단점 은 모든 유 닉 스 시스템 이 이런 방식 을 지원 하 는 것 은 아니 지만 반 따옴표 는 긍정 적 으로 지원 합 니 다.
명령 삽입 에 대하 여:
$(ps -ef|grep `ps -ef|grep nginx |grep 'ottcache'|grep 'master process'|awk '{print $2}' ` |grep 'worker process'|awk '{print $2}')
안의 명령 은 '반 따옴표 로 pid 를 얻어 내 고 이 위 치 를 교체 합 니 다. $() 다른 명령 을 집행 하 다.
[root@CGSLV5_03 home]# echo today is $(date "+%Y-%m-%d")
today is 2019-08-14
[root@CGSLV5_03 home]# echo today is `date "+%Y-%m-%d"`
today is 2019-08-14
[root@CGSLV5_03 home]#
[root@localhost ~]# echo Linux `echo Shell `echo today is `date "+%Y-%m-%d"```
Linux Shellecho today is 2017-11-07 # ``
[root@localhost ~]# echo Linux `echo Shell $(echo today is $(date "+%Y-%m-%d"))`
Linux Shell today is 2017-11-07 `` $()
[root@localhost ~]# echo Linux $(echo Shell $(echo today is $(date "+%Y-%m-%d")))
Linux Shell today is 2017-11-07 # $()
2. ${} 변수 교체, ${} 에 도 있 습 니 다. #*,##*,#*,##*,% *,%% *
일반적으로 $var 는 ${var} 과 다 르 지 않 지만 ${} 을 사용 하면 변수 이름 의 범 위 를 정확하게 정의 할 수 있 습 니 다.
exp 1
[root@localhost ~]# A=Linux
[root@localhost ~]# echo $AB # AB
[root@localhost ~]# echo ${A}B # A B
LinuxB
변수 부분 캡 처
file=/dir1/dir2/dir3/my.file.txt
${ } :
${file#*/}: / :dir1/dir2/dir3/my.file.txt
${file##*/}: / :my.file.txt
${file#*.}: . :file.txt
${file##*.}: . :txt
${file%/*}: / :/dir1/dir2/dir3
${file%%/*}: / :( )
${file%.*}: . :/dir1/dir2/dir3/my.file
${file%%.*}: . :/dir1/dir2/dir3/my
:
# ( # $ )
% ( % $ )
;
하위 문자열 및 교체
${file:0:5} 5 /dir1
${file:5:5} 5 5 /dir2
${file/dir/path} dir path /path1/dir2/dir3/my.file.txt
${file//dir/path} dir path /path1/path2/path3/my.file.txt
${#file} 27
3. $(( )) 되다 정수 연산, 진 변환, 변수 값 재 정의
bash 에서 정수 연산 기호
기호.
기능.
+ - */
각각 더하기, 빼 기, 곱 하기, 나 누 기 이다.
%
나머지 연산
& | ^ !
AND, OR, XOR, NOT
[root@localhost ~]# echo $((2*3))
6
[root@localhost ~]# a=5;b=7;c=2
[root@localhost ~]# echo $((a+b*c))
19
[root@localhost ~]# echo $(($a+$b*$c))
19
$() 는 다른 진 을 10 진수 로 바 꾸 어 표시 할 수 있 습 니 다.용법 은 다음 과 같다.
echo $((N#xx))
그 중에서 N 은 진법 이 고 xx 는 이 진법 의 다음 수치 이 며 명령 이 실 행 된 후에 이 진수 가 10 진법 으로 전 환 된 후의 값 을 얻 을 수 있다.[root@localhost ~]# echo $((2#110))
6
[root@localhost ~]# echo $((16#2a))
42
[root@localhost ~]# echo $((8#11))
9
(() 변 수 를 다시 정의 합 니 다. [] 수학 식 의 강화 판 입 니 다.
[root@localhost ~]# a=5;b=7
[root@localhost ~]# ((a++))
[root@localhost ~]# echo $a
6
[root@localhost ~]# ((a--));echo $a
5
[root@localhost ~]# ((aecho $?
0
[root@localhost ~]# ((a>b));echo $?
1
[[]] 문자열 식 강화 판 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.