Bash:Printf用换行符替换空格

时间:2017-07-18 07:24:49

标签: bash shell

下面的shell脚本在遇到空格时会引入换行符。

countries = "Brazil Russia India"
printf "Countries are %s" $countries

输出如下:

Countries are Brazil
Countries are Russia 
Countries are India

相反它应该是

Countries are Brazil Russia India

有没有办法克服这种行为?

2 个答案:

答案 0 :(得分:4)

引用变量使其成为单个参数。

cacheConfig

一般情况下,除非您有特殊原因,否则总是引用您的变量。

答案 1 :(得分:1)

尝试使用此代码来解决您的问题。要理解为什么Bash的行为方式,请阅读this answer.中的解释。要点是,带有空格(或其他特殊字符)的不带引号的变量不会表现为整个字符串。所以要小心。

#!/usr/bin/env bash
countries="Brazil Russia India"
printf "Countries are %s" "${countries}"
相关问题