O que significa eco “{@@ ##}”?

0


Temos um script que precisamos entender e, em algum momento, temos essa sintaxe:

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

Estou confuso sobre a parte echo "{@@##}" , eu realmente não entendo isso. Eu sei que os scripts tentam testar o código de retorno da função lance_deg , mas isso não vai funcionar porque vai obter o código de retorno do comando echo.

Eu posso remover a parte do eco para resolver o meu problema, mas o ponto é realmente entender o que a {@@##} parte significa.

    
por Carpette 02.09.2015 / 16:29

1 resposta

4

Essa parte:

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

Apenas imprime:

{@@##}RETURN_REAL_STATUS_SCRIPT=x

em que o último x é substituído pelo valor da variável $? . A partir da manch bash:

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

Isso significa que $? contém o código de saída do comando executado anteriormente: $INTERFACE_D/bin_cm/deg/lance_deg , que pode ser um dígito de 0 ; para o sucesso e 1 ou erro por erro.

Veja isto:

$ 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
    
por 02.09.2015 / 16:40