1) 남자의 나이와 여자의 나이를 입력 받은 후
#!/bin/bash
echo "남자의 나이를 입력하세요 :"
read man
echo "여자의 나이를 입력하세요 :"
read woman
2)두 명중에 나이가 더 많은 사람을 선별하고 나이차를 출력한 후,
if [ $man > $woman ] ;
then echo "남자의 나이가 더 많습니다.";
elif [ $man == $woman ] ;
then echo "나이가 똑같습니다.";
else echo "여자의 나이가 더 많습니다.";
3)두 명의 나이를 합산하여 출력하는 쉘스크립트를 작성하세요.
gap=`expr $man - $woman`
echo "나이차이는 $gap 살 입니다."
sum=`expr $man + $woman`
echo "나이합산은 $sum 살 입니다."
간단하게 작성하였으나 여자의 나이가 남자보다 많았을때 음수가 출력되는 문제 발생
조건문 비교연산자를 사용하여 나이차이가 양수일때와 나이차이가 음수일때를 나눠주어 출력한다.
gap=`expr $man - $woman`
if [ $gap -gt 0 ] ; #조건문 비교연산자 -gt 를사용하여 [A -gt B] A값이 크면 참
then echo "나이차이는 $gap 살 입니다."
else gap=`expr $gap * -1 ` #0보다 크지않을땐 음수이기 때문에 -1을 gap값에 -1을 곱하여 양수변환
echo "나이차이는 $gap 살 입니다."
fi
sum=`expr $man + $woman`
echo "나이합산은 $sum 살 입니다."
■ 오류
expr: syntax error $gap값에 -1을 곱하여 양수로 변환하는 곱연산에 오류발생
■ 해결
expr 을 사용하여 곱셈할 때는 * 가 아닌 Backslash + * 를 입력해야한다.
else gap=`expr $gap \* -1 ` # 백슬래쉬 추가
■ 결과
'22년 가을학기 > 유닉스 고급' 카테고리의 다른 글
6.쉘스크립트 중급 (0) | 2022.11.05 |
---|---|
5.파일 처리 명령어 (0) | 2022.10.13 |
4.문자열 검색 명령어 (0) | 2022.09.29 |
2.쉘 스크립츠 초급 (0) | 2022.09.11 |
1.간단한 쉘 스크립트 (0) | 2022.09.11 |