이 bash는 구문 분석하지 않습니다.
if ! [[ mkdir -p "$available"
&& mkdir -p "$enabled"
&& mkdir -p "$logroot"
&& chmod 755 "$available" "$enabled" "$logroot" ]]
then
echo "Could not make $available, $enabled, and $logroot."
exit 1;
fi
올바른 형태는 무엇입니까?
당신이 체인 여러 명령을 실행하려면 &&
, 다음 [[ ... ]]
적합하지 않습니다. 이것이 의도 한 것 같습니다.
if ! { mkdir -p "$available" &&
mkdir -p "$enabled" &&
mkdir -p "$logroot" &&
chmod 755 "$available" "$enabled" "$logroot"; }
then
echo "Could not make $available, $enabled, and $logroot."
exit 1
fi
후속 질문에 대답하려면 다음과 같습니다 if(!(a && !b && c))
.
if ! (a && ! b && c); then
# ...
fi
즉, !
옆에있는 용어에만 바인딩되며 주위에 공백을 두어야합니다 !
. ( @ that-other-guy 감사합니다 )
또는 더 나은 방법으로 대신 (...)
그룹화를 사용하여 하위 셸을 피할 수 있습니다 { ...; }
( @ charles-duffy 감사합니다 ).
if ! { a && ! b && c; }; then
# ...
fi
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다