bash函数中的返回值是一个热门话题,但我还没有看到解释我所看到的行为的答案。
我有一个bash函数库"pt2026_firmware",其中一个函数"pt2026_start_firmware“显式返回0表示成功,1返回失败。当我跑的时候
bash -x -c "source pt2026_firmware; pt2026_start_firmware; echo $?"
我得到:
+ source pt2026_firmware
[...stuff deleted...]
+ '[' 0 -eq 0 ']'
+ return 1
+ echo 0
0我显然遗漏了一些非常基本的东西,但是我不明白为什么当我“返回1”时我会得到$?=0?提前感谢您的帮助!
发布于 2022-08-09 16:32:51
如果希望在$?运行后展开pt2026_start_firmware,则需要在代码周围使用单引号:
bash -x -c 'source pt2026_firmware; pt2026_start_firmware; echo $?'否则,在新复制的bash echo $? 甚至启动之前,echo $?会更改为echo 0 。
https://stackoverflow.com/questions/73295208
复制相似问题