![Bash에서 소수 인쇄하기 [닫기]](https://linux55.com/image/218282/Bash%EC%97%90%EC%84%9C%20%EC%86%8C%EC%88%98%20%EC%9D%B8%EC%87%84%ED%95%98%EA%B8%B0%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
안녕하세요. 저는 프로그래밍이 처음이고 현재 bash 스크립팅을 배우고 있습니다. 이 오류 "Line 28: Expected `)'"에 대해 도움을 주십시오.
아래에 내 프로그램이 나와 있습니다.
read -p "enter the number:" a
while [[ $a -le 100 ]]
do
echo "$a"
if [[ (($a-1) % 2) -eq 0 ]]
then
((a++))
fi
done
답변1
bash는 산술 평가를 사용하므로 $(( ... ))
테스트에는 다음이 필요합니다.
if [[ $((($a-1) % 2)) -eq 0 ]]; then ...
그러나 변수 확장은 산술적 맥락에서 암시적이므로 다음과 같이 작성할 수 있습니다.
if [[ $(((a-1) % 2)) -eq 0 ]]; then ...
하지만, 산술 표현식의 상태를 직접 사용할 수 있으므로 실제로 외부 테스트 괄호가 필요하지 않습니다.
if (( (a-1) % 2 == 0 )); then ...