我有一个小的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
答案 0 :(得分:1)
您混合了退出状态和输出。
使用$(getUptime)
可获得函数的输出,而不是退出状态。
您可以更改功能,但是名称将不匹配其功能。
function getUptime() {
uptime >/dev/null 2>/dev/null
echo "$?"
}
我想最好不要更改功能,而应在以下位置更改代码:
resultReceived=$(getUptime)
exitstatus=$?
echo "Result: $resultReceived, exitstatus: $exitstatus"