[英]Concatenation of strings in bash
我在尝试从WordPress自述文件解析版本号时遇到以下bash脚本问题。
cat readme.txt | {
while read -r a b c d; do
if [ ${a} == "Stable" ] && [ ${b} == "tag:" ]; then
VERSION="$c"
fi
done
out="Updated to version $VERSION thanks"
echo $out
}
我期望的输出是
Updated to version 1.15 thanks
但实际输出是
thanks to version 1.15
就像“谢谢”代替了字符串的开头,而不是附加到末尾。 有什么线索吗?
readme.txt
和/或您的脚本具有DOS行尾; VERSION
的值具有尾随回车符,这会影响输出。
如果将输出传递给cat -A
,则可能会发现$VERSION
包含回车符。
您可以使用tr
摆脱CR:
$ echo $'foo\rb'
boo
$ echo $'foo\rb' | tr -d '\r'
foob
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.