집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux의 Shell에서 다양한 괄호의 기능과 사용법을 종합적으로 정리
셸 프로그래밍을 배울 때 다양한 괄호 사용법이 혼란스러웠습니다. 점차 익숙해지고 축적되면서 마침내 모든 괄호의 사용법을 마스터했습니다. 이제 제가 요약한 내용을 여러분과 공유하고 싶습니다.
참고: 이 문서를 읽기 위한 전제 조건은 이미 bash 및 쉘 프로그래밍의 기초를 갖추고 있다는 것입니다.
단일 괄호 ()
하지만 괄호에는 두 가지 공통 기능이 있습니다: 명령 대체와 배열 초기화
명령 대체
$() 구조를 만나면 쉘 내부의 명령 괄호가 실행되고 결과가 반환됩니다
# tmp=$(date) # echo $tmp Fri Sep 18 10:22:30 CST 2020
초기화 배열
# 初始化数组 lnmp=(linux nginx mysql php)
이중 괄호(())
이중 괄호에는 특성이 있다는 것을 기억하세요. 즉, 괄호 안의 내용이 일치해야 한다는 것입니다. C 언어 구문에서는 변수 이름을 사용할 때 $ 기호를 추가할 필요가 없습니다.
이중 괄호는 정수 계산에 더 자주 사용됩니다(소수점은 지원되지 않음). 예: $((3+2))
# echo $((1+3)) 4 # n1=3 # echo $((n1+7)) 10
C 언어 문법의 연산 확장을 준수하는 한 괄호 안에 쓸 수 있습니다
# echo $((3+4>5 ? 1 :0)) 1 # echo $((3+4>9 ? 1 :0)) 0
이때 변수를 다시 할당합니다. 괄호 외부에는 기호를 추가할 수 없습니다
# i=1;((i++));echo $i; 2 # i=1;((i=100));echo $i; 100
이중 괄호 for 루프에서 자주 사용됩니다
for ((i=0;i<5;i++));do echo -n $i;done
단일 대괄호 []
단일 대괄호는 논리적 판단에도 가장 일반적으로 사용됩니다. 배열의 첨자로 사용하고 정규식에서 범위를 나타냅니다.
쉘 스크립트 조건부 판단에 사용:
if [ 1 > 2 ] then …… fi
는 배열 첨자로 사용할 수도 있습니다.
# echo ${lnmp[1]} nginx
는 정규식에서 범위를 나타내는 데 사용됩니다.
[0-9] 表示数子0-9都行
이중 괄호
단일 괄호와 마찬가지로 이중 괄호도 조건부 판단에 사용되지만 단일 대괄호보다 더 일반적입니다. 예는 다음과 같습니다.
[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ] 改成双括号 [[ a > b && a > 0 ]]
단일 중괄호 {}
Cure 중괄호 확장. (globbing)은 중괄호로 묶인 파일 이름을 확장합니다. 중괄호 내에서는 공백이 인용되거나 이스케이프되지 않는 한 공백이 허용되지 않습니다.
예를 들어 rm -f {1,2}.txt 명령을 입력하면 1.txt 및 2.txt 파일이 삭제됩니다.
단일 중괄호 안의 ..의 역할
여기서 두 점은 범위를 나타냅니다. 예를 들어
echo {1..10} #将打印1,2,3,4,5,6,7,8,9,10
중괄호는 코드 블록용 쉘 스크립트에서도 일반적으로 사용됩니다.
첫 번째 외에도 단일 중괄호를 사용하여 변수 내용을 대체 및 삭제하고 변수 내용을 테스트할 수도 있습니다. 우리는 종종 변수가 존재하는지 확인하고 존재하지 않으면 변수에 새 값을 설정합니다.
val=${n1:-test}
위 코드는 변수 n1이 존재하지 않거나 비어 있으면 val 변수의 값이 test로 설정되고, 그렇지 않으면 val의 값이 n1 변수의 값이 된다는 의미입니다
위 내용은 Linux의 Shell에서 다양한 괄호의 기능과 사용법을 종합적으로 정리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!