-
카테고리
-
세부 분야
시스템
-
해결 여부
해결됨
쉘 스크립트 안에서
22.03.07 19:03 작성 조회수 180
0
awk_chk.awk 파일의 내용을
쉘 스크립트로 작성해보려고 노력해봤습니다.
결론부터 말하자면 정상적으로 결과값이 출력되기는 하는데
변수에 조금 더 간단하게 식을 넣을 수 있는 방법이 없을까요?
감사합니다
#!/bin/bash
PER=${1}
if [[ ${#} -ne 1 ]]; then
echo -e "해당 스크립트 사용방법\n${0} [PERCENT ( 1 ~ 100 % )]"
exit 1
fi
if [[ ${PER} -gt 100 ]] || [[ ${PER} -lt 0 ]]; then
echo -e "PERCENT : 1 ~ 100\n다시 입력해주세요"
exit 1
fi
if [[ ${PER} =~ [^0-9] ]]; then
echo -e "DISK PERCENT를 입력해주세요 [ 1 ~ 100 ]"
exit 1
fi
DISK_LISTS=($(df -h | awk '{gsub(/%/,""); print $5}' | grep -vi 'use'))
MNT=($(df -h | awk '{gsub(/%/,""); print $6}' | grep -vi "mounted" ))
for idx in "${!DISK_LISTS[@]}";
do
disk="${DISK_LISTS[${idx}]}"
mount="${MNT[${idx}]}"
if [[ $disk -ge ${PER} ]]; then
echo -e "${disk}\t${mount}\n"
fi
done
답변을 작성해보세요.
1
그로스쿨
지식공유자2022.03.08
앞에 입력값에 대한 조건을 추가해서 응용을 해 주셨네요.
변수에 식을 추가한다는 의미는 아마 앞쪽에 추가한 if문의 조건을 조금 더 간단하게 처리할 수 있는 가에 대한 질문인 것 같은데요.
저도 if문 대신 case문을 사용하는 정도 이외에는 떠오르는게 없네요.
case조건에 따라 반복하는 부분이 생긴다면 그건 함수로 만들어주고 호출하는 것이 좀 더 효율적일 것 같습니다.
쉘스크립트는 결과중심적인 절차형언어이기 때문에 결과만 제대로 나온다면 무엇이든 상관이 없다고 생각하는 것이 실무자들 사이에서의 정설(...)이라고 생각합니다.
열심히 하시는 모습이 저에게도 힘이 됩니다. 응원할게요!!!!
답변 1