쉘 스크립트에서 test 명령 대신 쉽게 숫자
2291 단어 ShellScriptBash
test 명령
bash로 숫자를 비교할 때 보통 test
명령을 사용합니다.
그러나 이 명령의 비교 옵션은 전혀 직관적이지 않고 매우 이해하기 어렵습니다.
옵션
설명
보충
-eq
같으면 참
equal
-ne
같지 않으면 참
not equal
-lt
작으면 참
less than
-le
이하라면 참
less than or equal
-gt
더 크면 참
greater than
-ge
이상이라면 참
greater than or equal
※ 인용 : Bash의 if 문 (test 문) 옵션을 정리해 보았습니다.
이것을 기억하는 것은 분명히 말하고 귀찮습니다.
다른 언어처럼 <=
또는 >
를 사용할 수 없습니까?
이중 괄호 사용
Archiso 의 소스 코드를 읽고 우연히 발견되었습니다.
a=1000
if (( a <= 1000 )); then
echo "aは1000以下です。"
fi
이런 글을 쓸 수 있어요()
Bash에서 $(( a + 10 ))
와 같이 변수에 $
는 필요없는 것 같습니다.
산술 전개의 일종인가 Bash의 독자적인 구문인가 상세한 것은 모릅니다...
그래서 누군가 자세하게 알고 계신 분이라면 알려주세요.
추가
코멘트로 가르쳐 주었습니다만, POSIX에는 없는 Bash나 Zsh등의 독자 기능인 것 같습니다.
쉐반에서 #!/usr/bin/env bash
를 지정하고 있으면 문제 없다고 생각합니다만, 임베디드 환경등의 특수한 경우는 사용하지 않는 편이 좋을 것 같습니다.
hoge=200
if (( hoge == 200)); then
echo "hogeは200です"
else
echo "hogeは200ではありません"
fi
Dash에서 실행하면 오류가 발생했습니다. 정상적인 비교는 불가능합니다.
Reference
이 문제에 관하여(쉘 스크립트에서 test 명령 대신 쉽게 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hayao0819/items/59b511bbdf00074aa94b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Archiso 의 소스 코드를 읽고 우연히 발견되었습니다.
a=1000
if (( a <= 1000 )); then
echo "aは1000以下です。"
fi
이런 글을 쓸 수 있어요()
Bash에서
$(( a + 10 ))
와 같이 변수에 $
는 필요없는 것 같습니다.산술 전개의 일종인가 Bash의 독자적인 구문인가 상세한 것은 모릅니다...
그래서 누군가 자세하게 알고 계신 분이라면 알려주세요.
추가
코멘트로 가르쳐 주었습니다만, POSIX에는 없는 Bash나 Zsh등의 독자 기능인 것 같습니다.
쉐반에서 #!/usr/bin/env bash
를 지정하고 있으면 문제 없다고 생각합니다만, 임베디드 환경등의 특수한 경우는 사용하지 않는 편이 좋을 것 같습니다.
hoge=200
if (( hoge == 200)); then
echo "hogeは200です"
else
echo "hogeは200ではありません"
fi
Dash에서 실행하면 오류가 발생했습니다. 정상적인 비교는 불가능합니다.
Reference
이 문제에 관하여(쉘 스크립트에서 test 명령 대신 쉽게 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hayao0819/items/59b511bbdf00074aa94b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
hoge=200
if (( hoge == 200)); then
echo "hogeは200です"
else
echo "hogeは200ではありません"
fi
Reference
이 문제에 관하여(쉘 스크립트에서 test 명령 대신 쉽게 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hayao0819/items/59b511bbdf00074aa94b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)