我有一个小的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
您混合了退出代码和输出。使用$(getUptime)
,您将获得函数的输出,而不是退出代码。
您可以更改功能,但名称将不匹配其功能。
function getUptime() {
uptime >/dev/null 2>/dev/null
echo "$?"
}