如何在 Centos7 中正确回显一个变量

How to echo a variable correctly in Centos7

我有一个版本值,我想像这样回显

The file version 1.1 is available

为此,我使用了包含值 1.1 的 $version 变量。但无论出于何种原因,我都无法回应这一行。它总是给我结果 -

 is available

echo 命令只打印 $version 之后的内容。这些是我试过的 echo 命令

echo "The file version" ${version} "is available"
echo "The file version ${version} is available"
echo "The file version $version is available"
echo "The file version" "$version" "is available"
echo "The file version" "${version}" "is available"

我什至尝试过使用 echo -nprintf 命令,但它不起作用。我在这里错过了什么?

根据您看到的输出,我相当确定您的 $version 变量包含回车 return ('\r') 字符。该值正在打印,但在 '\r' 将光标发送到行首后它被覆盖。

您可以通过输入

来验证这一点
printf "%q\n" "$version"

echo "$version" | cat -A

你可能做了类似的事情:

version="$(some_command some_option)"

其中输出使用 Windows-style 行结尾。

避免这种情况的许多方法之一(可能不是最干净的解决方案)是:

version="$(some_command some_option | tr -d '\r')"