gpt4 book ai didi

linux - 为什么在 shell 脚本中,$?不能回显两次吗?

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:51 26 4
gpt4 key购买 nike

我有两个简单的脚本:

#!/bin/sh

echo "this script return sth"

exit 105

和:

#!/bin/sh

echo "this script will print last script return"

echo "first run a script"
./this_script_return_sth.sh

echo "previous script return value: $?"
echo $?

运行结果为:

this script will print last script return
first run a script
this script return sth
previous script return value: 105
0

我做错了什么吗?这是否意味着如果我想使用它,最好先将其存储到某个变量中?

最佳答案

$? 扩展为最后一条语句的返回码。因此,零表示最后 echo 语句(即 echo "previous script return value: $?")成功。

来自bash manual:

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

如果您需要在多个位置存储该值,那么您始终可以将其存储在变量中:

./this_script_return_sth.sh
rc=$?

echo "previous script return value: $rc"
echo $rc

关于linux - 为什么在 shell 脚本中,$?不能回显两次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37113046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com