안녕하세요. 이번 포스팅에서는 쉘 스크립트에서의 function return에 대해 알아보겠습니다.
타 프로그래밍 언어와 shell script의 function return 차이
쉘 스크립트에서의 function return은 다른 프로그래밍 언어와는 조금 다릅니다.
다른 프로그래밍 언어
// java
public String printHello() {
return "Hello";
}
// javascript
function printHello() {
return "Hello";
}
쉘 스크립트
function printHello() {
return "Hello" // "Hello": numeric argument required 에러 발생
}
자바나 자바스크립트와 같은 프로그래밍 언어들은 함수에서 문자열을 리턴할 수 있습니다.
하지만 쉘 스크립트는 함수에서 문자열을 리턴할 수 없습니다.
쉘 스크립트에서의 리턴은 '값을 리턴한다'라는 의미가 아니라 '어떤 상태로 종료가 되었다'라는 상태 코드를 의미합니다.
상태 코드는 0 ~ 255까지로 구분되어 있습니다.
일반적으로 0은 성공을 의미하고 1 ~ 255까지는 에러를 의미합니다.
그럼 쉘 스크립트에서는 함수의 결과값을 리턴받아 활용할 수는 없는 것일까요?
shell script에서 function return 값 받기
당연히 쉘 스크립트에서도 함수 리턴값을 반환받아 활용할 수 있습니다.
1. echo로 리턴
#!/bin/bash
function printHello() {
str="Hello"
echo ${str}
}
# printHello 함수를 호출하고 리턴값을 val에 대입한다.
val=$(printHello)
echo ${val} # "Hello"
2. 전역 변수 활용
#!/bin/bash
val=""
function printHello() {
val="Hello"
}
printHello
echo ${val} # "Hello"