我使用 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_STATUS
在echo
上拾取正确的值,但在调用to_upper
时却没有