쉘 스크립트 질문입니다 -_ㅠ
먹고 살기위해 쉘스크립트를 못하지만 닥쳐서 하고 있는 초보입니다. -_ㅠ
유닉스 쉘 바이블을 보면서 다른 사람이 만들어 놓은 스크립트를 해석하고 정리해야 하는데요.
NOTE : script는 콘쉘로 짜여져 있습니다.
아래는 script의 일부분입니다. INT0, 1은 이미 integer로 선언되어 있습니다.
# check ftp and anonymous user
INT0=`cat /etc/passwd | grep -E "anonymous|ftp" | wc -l`
INT1=`netstat -a | grep ftp | grep LISTEN | wc -l`
AFTP_USER_CAN_LOGIN="YES"
# if ether of ftp or anonymous id exists then check ftp login possibility.
if [ ${INT1:--1} -eq 0 ]
then
AFTP_USER_CAN_LOGIN="NO"
elif [ ${INT0:--1} -ne 0 ] # ftp or anonymous id exists
then
TEMP_FILE="${DIR}/${HOSTNAME}_FTP_CHECK_OUT_${DATE_TIME}.tmp"
스크립트의 의도는 알겠는데 위의 항목에서 if ${INT1:--1} 의 값이 정확히 이해가 안됩니다.
IF문으로 값을 비교를 할 때INT1의 값이 1이었다면 ${INT1:--1}의 결과는 --1의 증감 연산자에 의해서 0이되는건가요?
INT1의 값이 0이된다면 IF문을 통해 비교 할 때만 0이 되는 것인지 아니면 변경전까지 쭈욱 INT1의 값은 0이 되는 것인지 궁금합니다.
*질문정리
ex)
${변수:++1} => 이렇게 하면 변수의 숫자값이 1증가하는건가요??
${변수:--1} => 이렇게 하면 변수의 숫자값이 1감소하는건가요??
만약 그렇다면 그 값은 바로 증가되고 감소 되는지 또 위의 IF에 들어갈 경우에는 비교될 당시에만 감소 혹은 증가하는지 궁금합니다.
고수님들 도와주세요 -_ㅠ 간단한 것 같은데 책을 뒤져봐도 잘 안나오내요....
간단한건데 안풀리니까.. 뒷골까지 땡기내요 으흑..
script
bash 와 유사하리라 보고 적습니다.
위와 같이 변수값의 증감과는 상관이 없습니다.
보다 상세한 설명은 검색엔진에서 "ksh 매개변수치환" 으로 찾아보세요.
---
배려하는 마음을 갖자.
매개변수치환!
매개변수치환!!이라고 하는군요!! 용어를 몰라 찾기가 힘들었었는데 감사합니다!
이런건 echo 직접 찍어서 테스트를 해보시면 될듯
이런건 echo 직접 찍어서 테스트를 해보시면 될듯 한데요 ?
간단한 테스트용 쉘을 만들어서 해보시는게 제일 빠를 듯 합니다.
감사감사!!
echo로 해보기는 했는데 확신이 없고 정확한 결과인지 긴가민가해서 질문을 했었습니다. :-)
감사합니다!
댓글 달기