Bash 3과 함께 일하고 있으며 조건부를 만들려고합니다. C / C ++에서 그 간단한 방법은 다음과 같습니다 ((A || B) && C)
. Bash에서 그 결과는 그렇지 않았습니다.
작동하지 않습니다. 참고 <0 or 1>
문자열 리터럴되지 않습니다; 0 또는 1을 의미합니다 (일반적으로에서옵니다 grep -i
).
A=<0 or 1>
B=<0 or 1>
C=<0 or 1>
if [ [ "$A" -eq "0" ] || [ "$B" -ne "0" ] ] && [ "$C" -eqe "0" ]; then ... fi
결과는 다음과 같습니다.
line 322: syntax error near unexpected token `[['
그런 다음 시도했습니다.
A=<0 or 1>
B=<0 or 1>
C=<0 or 1>
if [ ([ "$A" -eq "0" ]) || ([ "$B" -ne "0" ]) ] && [ "$C" -eq "0" ]; then ... fi
결과는 다음과 같습니다.
line 322: syntax error near unexpected token `[['
문제의 일부는 검색 결과가 사소한 예이며 복합 조건부에서는 더 복잡한 예가 아니라는 것입니다.
((A || B) && C)
Bash 에서 간단한 작업을 수행하려면 어떻게합니까 ?
나는 그것을 풀고 여러 블록에서 동일한 명령을 반복 할 준비가되었습니다.
A=<0 or 1>
B=<0 or 1>
C=<0 or 1>
if [ "$A" -eq "0" ] && [ "$C" -eq "0" ]; then
...
elif [ "$B" -ne "0" ] && [ "$C" -eq "0" ]; then
...
fi