> php教程 > PHP开发 > 본문

Shell에서 괄호를 사용하는 방법

高洛峰
풀어 주다: 2016-11-23 17:41:11
원래의
1366명이 탐색했습니다.

괄호

괄호는 단일괄호[]와 이중괄호[[]]로 구분됩니다. 대괄호는 일반적으로 표현식 판단에 사용됩니다.

단괄호 []

A=5
B=3
[ $A -eq $B ]    判断A是否等于B
[ ${A} -eq ${B} ]  作用同上
[ "${A}" -eq "${B}" ]  作用同上
로그인 후 복사

A=ABC
[ $A == "ABC" ]   或写成  [ ${A} == "ABC" ]   或写成  [ "${A}" == "ABC" ]
[ $A \> "ABC" ]
로그인 후 복사

[ -d ./aaa.sh -a -e ./bbb ]  测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真
[ -d ./aaa.sh -o -e ./bbb ]  测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
로그인 후 복사

위에서 단일 대괄호 사용에 대한 몇 가지 규칙을 볼 수 있습니다.

변수와 대괄호 사이에 공백이 있어야 합니다.

대괄호 사이에도 공백이 있어야 합니다. 변수 및 연산자 Spaces

변수는 $ 또는 ${} 및 "${}"로 직접 인용할 수 있습니다. ${}를 직접 사용할 수도 있지만 "${}"를 사용하는 것이 좋습니다. 또는 직접 $를 사용하여 변수를 인용합니다.

문자열은 큰따옴표로 묶어야 합니다.

문자열 비교에서는 일반적으로 ==를 사용하여 문자열이 동일한지 테스트하고 < 크기 비교, 단일 괄호 안의 문자보다 큼과 작음을 비교하려면 전송 > 비교 원칙은 ASCII를 비교하는 것입니다.

또한 단일 괄호 안에 -a 및 -o와 같은 논리 연산자를 사용할 수도 있습니다


이중 대괄호 [[]]:

A=5
B=3
[[ $A -eq $B ]]    判断A是否等于B
[[ ${A} -eq ${B} ]]  作用同上
[[ "${A}" -eq "${B}" ]]  作用同上
로그인 후 복사

                                                                              🎜>

A=ABC
[[ $A == "ABC" ]]   或写成  [[ ${A} == "ABC" ]]   或写成  [[ "${A}" == "ABC" ]] 或写成 [[ $A == ABC ]]
[[ $A > "ABC" ]]
로그인 후 복사
이중 대괄호 사용 규칙은 단일 대괄호 사용 규칙과 유사합니다

이중 대괄호 사이의 문자열 비교에는 이스케이프가 필요하지 않으며 문자열은 큰따옴표 없이 인용될 수 있습니다.
[[ -d ./aaa.sh && -e ./bbb ]]  测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真
[[ -d ./aaa.sh || -e ./bbb ]]  测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
로그인 후 복사

이중 대괄호 안에 && 및 ||를 논리 연산자로 사용할 수 있습니다

A=ABC
[[ $A =~ "A" ]]   做模式匹配,这个表达式为真
或写成  [[ ${A} =~ "A" ]]  或写成  [[ "$[A]" =~ "A" ]]
[[ $A = A* ]] 表达式为真  [[ $A = B* ]] 表达式为假
로그인 후 복사
이중 대괄호 안에 퍼지 매칭을 수행할 수도 있습니다. =~표현식 2는 정규식일 수 있습니다

[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]
로그인 후 복사
괄호

단일 괄호
[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
로그인 후 복사

단독으로 사용되는 괄호는 명령 그룹을 나타내며, 괄호 안의 명령은 다음을 통해 순차적으로 실행됩니다. subshell.


이것은 명령 대체에 사용됩니다. 명령 대체에는 백틱을 사용할 수도 있습니다. ``

(ls ./;echo "hello";mkdir -p /tmp/ccc)
로그인 후 복사

이중 괄호

는 산술 연산 및 for 루프에서 자주 사용됩니다.
echo "当前目录是:$(pwd)"
echo "当前目录是:`pwd`"
로그인 후 복사


For 문의 형식

1~10 루프 실행
A=$((5+3))
B=$(($A+4))
로그인 후 복사

>

1~10사이클


写法1:
for I in (1..10);do
done
 
写法2:
for I in seq 1 10;do
done
 
写法3:
for (( i=1 ; i<=10 ; i++ )); do
done
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿