字符串插值如何在bash中工作?

时间:2014-03-18 14:00:46

标签: bash

我正在尝试在字符串中插入参数值。让我举一个简单的例子来说明一般性。

size="40"
#Yes, variable size is a string
echo "Total Bytes $size"
#^ works fine: outputs Total Bytes: 40
echo "Total Bytes: $size bytes"
#outputs  bytesBytes: 40
#The string " bytes" is inserted at the beginning overwriting the other string- why?

我尝试了这些命令的多种变体,但似乎都没有让我相信我正在制造一些经典的noob错误。 欢迎任何建议。

1 个答案:

答案 0 :(得分:5)

您已使用CRLF行结尾保存文件。

如果你的发行版有它,请尝试dos2unix your_script_file 否则这是您的解决方案:sed -i $'s/\r//' your_script_file

我猜您的脚本是从curl获得的,这是dangerous practice。但是,我现在暂不讨论这些细节。

您可以通过curl简单地输出tr -d '\r'输出,以获得您想要的正确脚本。