意外的 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上。

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

在这种情况下,我不太确定为什么$DEVICE_STATUSecho上拾取正确的值,但在调用to_upper时却没有

相关内容

  • 没有找到相关文章

最新更新