bash 变量吃掉多个空格,将它们变成一个
bash variable eats multiple spaces, turning them to one
# export var="many spaces"; echo =${var}=
=many spaces=
这是怎么回事?
为什么乘法空间变成一个?如何全部保留?
您只是缺少变量周围的引号。将您的代码更改为:
$ export var="many spaces"; echo ="${var}"=
=many spaces=
应该会给出您要查找的结果。您需要注意的 bash 的一个“特性”是分词,它基于您的 IFS(内部字段分隔符)变量的值。通常 IFS 默认为
IFS=$' \t\n'
因此您需要小心引用包含空格、制表符和换行符的变量。
# export var="many spaces"; echo =${var}=
=many spaces=
这是怎么回事? 为什么乘法空间变成一个?如何全部保留?
您只是缺少变量周围的引号。将您的代码更改为:
$ export var="many spaces"; echo ="${var}"=
=many spaces=
应该会给出您要查找的结果。您需要注意的 bash 的一个“特性”是分词,它基于您的 IFS(内部字段分隔符)变量的值。通常 IFS 默认为
IFS=$' \t\n'
因此您需要小心引用包含空格、制表符和换行符的变量。