echo“{@@##}”是什么意思?

echo“{@@##}”是什么意思?


我们有一个需要理解的脚本,在某些时候,我们得到了这样的语法:

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 命令的返回代码。

我可以删除 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

相关内容