bash:函数返回输出而不是输出状态

问题描述 投票:0回答:1

我有一个小的bash脚本,如下所示

function getUptime() {

    uptime 2>/dev/null
    return "$?"
}

resultReceived=$(getUptime)
echo "Result: $resultReceived"

并且当我执行脚本时,我得到的是0命令输出,而不是uptime。我在哪里做错了。请帮助。

调试输出

 tmp bash -x testingscript.sh
++ getUptime
++ uptime
++ return 0
+ resultReceived='11:47  up 3 days, 19:24, 7 users, load averages: 1.88 1.78 2.04'
+ echo 'Result: 11:47  up 3 days, 19:24, 7 users, load averages: 1.88 1.78 2.04'
Result: 11:47  up 3 days, 19:24, 7 users, load averages: 1.88 1.78 2.04
bash
1个回答
0
投票

您混合了退出代码和输出。使用$(getUptime),您将获得函数的输出,而不是退出代码。

您可以更改功能,但名称将不匹配其功能。

function getUptime() {

    uptime >/dev/null 2>/dev/null
    echo "$?"
}
© www.soinside.com 2019 - 2024. All rights reserved.