我在尝试从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 $'foorb'
boo
$ echo $'foorb' | tr -d 'r'
foob