유닉스 셸 함수를 올바르게 사용하는 방법에 대해 설명해주십시오.유닉스 셸 함수, 명령 대체 및 종료
것은 예를 들어 우리는 함수 F와 G 다음 한 :
f()
{
#do something
return $code
}
g()
{
print $something
}
우리는 다음 방법으로 함수 f를 사용할 수 있습니다
f
if [[ $? -eq 0 ]]; then
#do 1
else
#do 2
fi
이 기능은 일부 종료 상태로 몇 가지 작업을 수행하고 종료.
그리고이 종료 상태를 분석 할 수 있습니다.
우리는 다음 방법으로 함수 g를 사용할 수 있습니다
g
또는 우리가 기능이라고 첫 번째 경우
result=$(g)
if [[ $result = "something" ]]; then
#do something
fi
.
두 번째 경우에는 함수 출력이 stdout에있는 모든 텍스트를 변수 result에 할당하기 위해 명령 대체를 사용했습니다. 기능이 따르고있다
그러나 만약
: 는z()
{
user=$1
type=$2
if [[ $type = "customer" ]]; then
result=$(/somedir/someapp -u $user)
if [[ $result = "" ]]; then
#something goes wrong
#I do not want to continue
#I want to stop whole script
exit 1
else
print $result
fi
else
print "worker"
fi
}
나는 다음 방법으로 함수 Z를 사용할 수 있습니다 뭔가 잘못 다음 전체 스크립트가 중지됩니다 간다
z
합니다.
그러나 누군가가 명령 치환에서이 기능을 사용하는 경우 :이 경우
result=$(z)
을 someapp가 빈 문자열 스크립트를 반환하는 경우은 중지되지 않습니다.
함수에서 exit를 사용하는 것이 올바른 방법이 아닌가요?
뭔가를 할 수 있습니다. – Anders