괄호
괄호는 단일괄호[]와 이중괄호[[]]로 구분됩니다. 대괄호는 일반적으로 표현식 판단에 사용됩니다.
단괄호 []
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* ]] 表达式为假
[ 表达式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)
echo "当前目录是:$(pwd)" echo "当前目录是:`pwd`"
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