1

我使用 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:我解决了这个问题;这是函数上的一些 grep 输出get_device_status,最终结果是$DEVICE_STATUS.

4

1 回答 1

1

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

在这种情况下,我不太确定为什么在调用时$DEVICE_STATUS选择了正确的值echo而不是调用to_upper.

于 2012-11-14T10:21:28.557 回答