![2개의 숫자를 명령줄 인수로 사용하는 Bash 스크립트를 만듭니다. 화면에 있는 두 숫자 중 더 큰 숫자를 인쇄합니다.](https://linux55.com/image/195081/2%EA%B0%9C%EC%9D%98%20%EC%88%AB%EC%9E%90%EB%A5%BC%20%EB%AA%85%EB%A0%B9%EC%A4%84%20%EC%9D%B8%EC%88%98%EB%A1%9C%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4.%20%ED%99%94%EB%A9%B4%EC%97%90%20%EC%9E%88%EB%8A%94%20%EB%91%90%20%EC%88%AB%EC%9E%90%20%EC%A4%91%20%EB%8D%94%20%ED%81%B0%20%EC%88%AB%EC%9E%90%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
어떤 명령을 사용해야 합니까? 이중 괄호를 사용해야 합니까? 이 두 숫자로 40 + 30을 사용하면 어떻게 출력되어야 합니까? 이제 막 시작했는데 도움이 필요합니다.
답변1
산술 평가를 사용할 수 있도록 bash를 언급하셨습니다( man bash
산술 평가 참조 및 검색).
예시 스크립트:
#!/bin/bash
a=$1
b=$2
if (( a > b )); then
printf '%d\n' "$a"
else
printf '%d\n' "$b"
fi
입력 내용을 확인하는 것을 잊지 마세요! 예:
if [[ ! "$1" =~ ^[[:digit:]]+$ ]] ||
[[ ! "$2" =~ ^[[:digit:]]+$ ]]
then
echo 'One of the arguments is not a number' >&2
exit 1
fi
답변2
echo $(($1 > $2 ? $1 : $2))
하지만 거기에 오류 검사를 추가하고 싶을 수도 있습니다. 예를 들어:
- 매개변수 개수(
$#
)가 정확합니까? - 인수가 올바른 형식의 정수입니까
?(-)+([0-9])
?