[Bash shell script] 도와주세요. 함수의 리턴값을 변수에 저장하는 코드.. 에러가 납니다. (코드첨부)
글쓴이: jaeung24k / 작성시간: 목, 2015/01/22 - 12:22오후
#!/bin/bash check_passwd() { if [ -f "/etc/passwd" ]; then echo "Password file exists.." return 0 else echo "No such file.." return 1 fi } check_passwd foo='check_passwd' #모르겠다. 함수의 리턴값을 받고 싶은데 변수가 앞에 있으면 함수 호출 자체가 불가능함. if [ "$foo" -eq 0 ]; then echo "File exists." exit 0 else echo "No such file." exit 1 fi
위 코드 실행시 아래와 같은 에러가 납니다.
./test.sh
Password file exists..
./test.sh: 줄 16: [: check_passwd: integer expression expected
No such file.
아예 함수가 호출이 되지 않는 문제입니다.
어떻게 하면 함수의 리턴값을 변수에 담을 수 있나요....?
Forums:
다음과 같이 하면 안될까요? # console
다음과 같이 하면 안될까요?
`Function_Name` 의 경우 쉘이 함수를
`Function_Name` 의 경우 쉘이 함수를 인식하지 못하는 군요..
다만 조언해주신 foo=$? 를 사용하여 해결하였습니다..
감사합니다!
오늘도 생명과 호흡을 주심에 감사합니다.
$? 이 전역 변수가 마지막에 실행한 명령이나 함수의
'$?' 이 전역 변수가 마지막에 실행한 명령이나 함수의 종료 코드를 담고 있습니다.
$? 는 프로그램 종료시 종료값을 담고 있는
$? 는 프로그램 종료시 종료값을 담고 있는 변수인줄만 알았습니다..
마지막 실행한 명령과 함수의 종료값을 실시간으로 담는 변수였군요!
감사합니다, 좋은 하루 보내세요 ^^
오늘도 생명과 호흡을 주심에 감사합니다.
댓글 달기