我使用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
。
答案 0 :(得分:1)
我解决了自己的问题:在get_device_status
函数中有一个grep
命令,它将垃圾输出到$DEVICE_STATUS
。将grep
输出重定向到/dev/null
解决了这个问题。
在这种情况下,我不太确定为什么$DEVICE_STATUS
在echo
上选择了正确的值,而不是在to_upper
的调用上。