프로그래밍 에서는 bash
항상 다음과 같은 긴 방법으로 조건 변수를 정의합니다.
dog=1
if [[ $dog -eq 1 ]] ; then
cow=1
else
cow=0
fi
이는 분명히 매우 비효율적입니다. 나는 MATLAB
다음을 할 수 있습니다
cow=(dog==1)
즉, 5줄이 아닌 1줄입니다. Bash에서도 비슷한 방법이 있나요? 어떤 조언이라도 감사드립니다.
답변1
순수한 정수 기반 할당의 경우 expr ? expr : expr
조건부 연산자를 사용할 수 있습니다.
dog=1
cow=$((dog ? 1 : 0))
이는 소와 개의 정수 값에 대해서만 작동하며 0/0이 아닌 값만 테스트합니다(여기서는 개).
dog=2
cow=$((dog ? 42 : 7))