에코 "{@@##}"은(는) 무슨 뜻인가요?

에코 "{@@##}"은(는) 무슨 뜻인가요?


이해해야 할 스크립트가 있는데 어느 시점에서 다음과 같은 구문을 얻게 됩니다.

if  [ "$PASS_CHAINE" = "TRUE" ]
then echo "Launching DEGAGEMENT" | SLog
     cd $INTERFACE_D/bin_cm/deg
     $INTERFACE_D/bin_cm/deg/lance_deg 2>&1 ; echo "{@@##}RETURN_REAL_STATUS_SCRIPT=${?}" | SLog
     EXIT_CODE=$?
     if [ $EXIT_CODE -ne 0 ]
     then echo "Error in DEGAGEMENT" | SLog
          exit_script
     fi
 fi

이 부분이 헷갈려서 echo "{@@##}"잘 이해가 안가네요. 스크립트가 lance_deg함수의 반환 코드를 테스트하려고 시도하지만 echo 명령의 반환 코드를 가져오기 때문에 작동하지 않는다는 것을 알고 있습니다.

내 문제를 해결하기 위해 에코 부분을 제거할 수 있지만 요점은 해당 {@@##}부분이 무엇을 의미하는지 실제로 이해하는 것입니다.

답변1

해당 부분:

echo "{@@##}RETURN_REAL_STATUS_SCRIPT=${?}"

그냥 인쇄하세요:

{@@##}RETURN_REAL_STATUS_SCRIPT=x

그 중 마지막 값은 x변수의 값으로 대체됩니다 $?. Bash 맨페이지에서:

   ?      Expands to the exit status of the most recently executed foreground pipeline.

$?이는 이전에 실행된 명령의 종료 코드를 포함하기 위한 $INTERFACE_D/bin_cm/deg/lance_deg것 입니다 : ; 0성공 및 1/또는 실수를 위해 모입니다.

확인 해봐:

$ ls file
file
$ echo $? # 0 indicates success
0
$ ls file_not_exist
ls: cannot access file_not_exist: No such file or directory
$ echo $? # >0 is an error
2

관련 정보