반응형
Bash에서 if 문 산술을 어떻게 수행합니까?
다음과 같이하고 싶습니다.
if [ $1 % 4 == 0 ]; then
...
그러나 이것은 작동하지 않습니다.
대신 무엇을해야합니까?
read n
if ! ((n % 4)); then
echo "$n divisible by 4."
fi
(( ))
연산자 C로서 연산 식을 계산하고, 부울 창을 갖는다.
따라서 (( 0 ))
거짓이고 (( 1 ))
참입니다. [1]
$(( ))
연산자는 C에게 산술 식을 확장, 대신 참 /의 거짓을 반환하는 대신 값을 반환합니다. 따라서 다음과 같은 경우 출력을 테스트 할 수 있습니다 $(( ))
. [2]
[[ $(( n % 4 )) == 0 ]]
그러나 이것은 다음과 같습니다 if (function() == false)
. 따라서 더 간단하고 관용적 인 테스트는 다음과 같습니다.
! (( n % 4 ))
[1] : 최신 bash는 컴퓨터 intmax_t
크기 까지 숫자를 처리합니다 .
[2] : $
내부 (( ))
변수를 역 참조하므로 내부에 놓을 수 있습니다 .
a=4
if [ $(( $a % 4 )) -eq 0 ]; then
echo "I'm here"
fi
단일 대괄호 ( [..]
)는 일부 테스트에서 작동하지 않습니다. 이중 대괄호 ( [[...]]
)로 시도 하고 mod를 묶어 연산자를 올바르게 ((..))
평가하십시오 %
.
if [[ $(( $1 % 4 )) == 0 ]]; then
자세한 내용은 여기 :
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_02.html
이것은 당신을 위해 일할 수 있습니다.
((a%4==0)) && echo "$a is divisible by 4" || echo "$a is not divisible by 4"
또는 더 간결하게 :
((a%4)) && echo "$a is not divisible by 4" || echo "$a is divisible by 4"
참조 URL : https://stackoverflow.com/questions/8304005/how-do-i-do-if-statement-arithmetic-in-bash
반응형
'programing tip' 카테고리의 다른 글
Javascript에서 배열을 뒤집는 가장 효율적인 방법은 무엇입니까? (0) | 2020.12.15 |
---|---|
목적 C에서 float를 다음 정수로 반올림합니까? (0) | 2020.12.15 |
XML 주석 및 "-" (0) | 2020.12.15 |
HTML for =“”속성은 (0) | 2020.12.15 |
ID 및 클래스 선택기를 사용하여 Jquery 세트 라디오 버튼 확인 (0) | 2020.12.15 |