-
问题描述:
在 yocto 工程中,使用rubikpi_buil.sh -a命令时,脚本中关键 bitbake 命令出错时脚本并未停止运行,导致有些情况无法使用./rubikpi_build.sh --zip_flat_build命令打包镜像。 -
问题分析:
BASH SHELL中,通常使用$?来获取上一条命令的返回码,对于管道中的命令,使用$?只能获取管道中最后一条命令的返回码。
rubikpi_build.sh 中出问题的函数如下,即使bitbake命令出错了,assert函数也不会检查出来。assert() { if [ $? -ne 0 ];then exit 1; fi } echo "bitbake qcom-multimedia-image" 2>&1 | tee -a $log_file bitbake qcom-multimedia-image 2>&1 | tee -a $log_file assert echo "bitbake qcom-qim-product-sdk" 2>&1 | tee -a $log_file bitbake qcom-qim-product-sdk assert } -
解决方法:
