如何在 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 -n
和 printf
命令,但它不起作用。我在这里错过了什么?
根据您看到的输出,我相当确定您的 $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')"
我有一个版本值,我想像这样回显
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 -n
和 printf
命令,但它不起作用。我在这里错过了什么?
根据您看到的输出,我相当确定您的 $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')"