意外的bash函数输出

时间:2012-11-14 09:37:56

标签: bash

我使用bash脚本编写了一个'to_upper'函数:

to_upper() {

    local string=$1
    echo $string | tr "[:lower:]" "[:upper:]"
    return 0
}

然而,输出:

VAL=bla
echo $(to_upper bla)
echo $(to_upper $VAL)

BLA
1

有谁知道这里发生了什么?

注意:我的示例似乎没有重现我的错误。但是,我所拥有的是这种情况:

DEVICE_STATUS=$(get_device_status)
echo $DEVICE_STATUS $(to_upper $DEVICE_STATUS)

然后输出:

active 1

我的例子似乎没有重现问题,但它在我的脚本上。

注意2 :我解决了问题;它是get_device_status函数上的一些grep输出,最终导致$DEVICE_STATUS

1 个答案:

答案 0 :(得分:1)

我解决了自己的问题:在get_device_status函数中有一个grep命令,它将垃圾输出到$DEVICE_STATUS。将grep输出重定向到/dev/null解决了这个问题。

在这种情况下,我不太确定为什么$DEVICE_STATUSecho上选择了正确的值,而不是在to_upper的调用上。

相关问题