Linux Shell Script: if 문에서 메서드를 호출하고 동시에 반환 값을 계산하는 방법

Linux Shell Script: if 문에서 메서드를 호출하고 동시에 반환 값을 계산하는 방법

Linux 쉘 스크립트와 관련하여 다음이 있습니다.

verifyIfFileExists(){
   ...
   returns 0 # if the file exists
   ...
   returns 1 # if the does not exist 
}

...

something(){

   verifyIfFileExists
   resultVerification=$?

   if [[ $resultVerification -eq 0 ]]; then
      ...   
   else
      ...
   fi
   ...
}

위에 표시된 코드는 예상대로 작동합니다. 가능한지, 메서드를 호출하고 명령문에서 평가하는 방법을 알고 싶습니다. 선언을 if피합니다 resultVerification=$?. 다음과 같습니다.

something(){

   verifyIfFileExists

   if [[ $(verifyIfFileExists) -eq 0 ]]; then
      ...   
   else
      ...
   fi

답변1

만약에주문하다

성공하면command귀하의 경우 상태 0으로 종료하십시오.

if verifyIfFileExists; then
    ...
else
    ...
fi

[[[자체는 인수로 주어진 표현식의 평가에 따라 0 또는 1을 반환하는 명령입니다. 그래서

if [[ ...

일반 인스턴스입니다.

만약에주문하다
위에 표시된 대로.

나중에 사용하려는 경우 종료 상태를 다른 변수에 저장하는 것이 유용할 수 있습니다.

... run a command
result=$?
printf "Command foo exited with result %s.\n" "$result"
if [[ "$result" -eq 0 ]]; then
    ...
fi

그럴 필요 없다면 그럼

command
if [[ "$?" -eq 0 ]]; then

다음과 같이 다시 작성할 수 있습니다.

if command; then

읽기가 더 쉽다고 생각합니다. 함수에 해당 이름이 있는 경우 특히 그렇습니다.예를 들어

if fileExists; then

당신은 또한 볼 수 있습니다쉘체크 SC2181더 많은 함정이 나열되어 있습니다.

답변2

그냥 사용:

  if verifyIfFileExists ; then
     # checking for return code 0

또는

  if ! verifyIfFileExists ; then
         # checking for return code 1

관련 정보