[英]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.