Skip to content

Latest commit

 

History

History
65 lines (52 loc) · 1.36 KB

坑爹的回车.org

File metadata and controls

65 lines (52 loc) · 1.36 KB

坑爹的回车

今天尝试自己写脚本调用网易翻译 API 进行翻译,结果被 echo 命令产生的回车符害惨了。

比如,要判断一个字符串的长度,我想当然的写成了

function len()
{
    echo "$*"|wc -c
}

但是这个产生的结果其实会比实际的长度多1个,就是 echo 命令产生的回车符:

len '123'

正确的实现是用 echo 的 -n 选项禁止产生最后的回车

function len()
{
    echo -n "$*"|wc -c
}
len '123'

当然,就取长度来说,最好的方法是直接使用 ${#param} 来获取

function len()
{
    local word="$*"
    echo "${#word}"
}
len '123'

类似的,用 sha256sum 进行签名时,也犯了这个错误

echo '123' |sha256sum
echo -n '123' |sha256sum