bash - 如何在 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
我什至用and命令尝试了同样的printf
方法,但它不起作用。我在这里想念什么?
解决方案
根据您看到的输出,我相当确定您的$version
变量包含回车 ( '\r'
) 字符。该值正在打印,但在'\r'
将光标发送到行首后它被覆盖。
您可以通过键入来验证这一点
printf "%q\n" "$version"
或者
echo "$version" | cat -A
你可能做了类似的事情:
version="$(some_command some_option)"
其中输出使用 Windows 样式的行尾。
避免这种情况的许多方法之一(也许不是最干净的解决方案)是:
version="$(some_command some_option | tr -d '\r')"
推荐阅读
- javascript - 如何在Javascript中仅获取DOM元素中直接包含的文本?
- python - tensorflow 过渡到 gpu 版本
- android - 如何在 React Native 中使用多个目标
- centos - 是否可以就地升级 CentOS 7 到 8
- graphql - Apollo GraphQl 分页 - 限制和跳过
- pytorch - 在 PyTorch 中提取子张量
- java - Apache POI (.xlsx) - 空值 - 我希望忽略一些而使用其他的(例如,检查是否填写了必填字段)
- networking - 如何在 Chrome 开发者工具中延迟资源加载
- shell - 脚本外壳检查验证日期格式 YYYYMMDDHHMMSS
- python - PyQtgraph - 通过鼠标单击和拖动绘制 ROI