아래 코드
if [ $a == "apple" ];
then
echo "True"
else
echo "False"
fi
( )이면 "True"
( )을 출력한다. 와일드카드를 사용하면 비교가 실패합니다."False"
a="apple"
a="plum"
if [ $a == "appl"* ];
[
다음으로 대체되는 경우 [[
:
if [[ $a == "appl"* ]];
[
이들 in a state그리고 in a state [[
의 차이점은 무엇인가요 if
?
답변1
[
는 명령입니다(기본적으로 command 의 변형test
).[[
이는 많은 쉘에 내장된 기능입니다.foo*
거기에 글을 쓸 때[...]
파일 이름 확장자(일명 와일드카드)은 내부에서 발생합니다.[[...]]
패턴 매칭발생하다.[[
하지만[
이식성이 문제가 되는 경우에는 사용하면 안 됩니다.[
[[
구문의 일부 가 아니므 로if
에서와 같이 사용할 수 있습니다[ "$exit" = 'yes' ] && exit
.- 내가 아는 한, 두 번째는 많은 쉘에서 허용되지만 POSIX와 호환되지 않습니다
[...]
.=
==
그건 그렇고, 변수를 큰따옴표로 묶는 방법을 알고 있더라도 변수를 큰따옴표로 묶는 것이 좋습니다.분사공연합니다.