关于bash:将文本追加到变量末尾

Appending text to the end of a variable

本问题已经有最佳答案,请猛点这里访问。

以下是有效的,但我不希望它返回的空间:

1
2
3
4
read input
file="$input"
file="$file ins.b" # how to get rid of the space here?
echo"$file"

输出"file ins.b"我不想要文件和ins.b之间的空间

如果代码中不留空格,它只返回".b"。我能做些什么来解决这个问题?


追加如下:

1
file="${file}ins.b"

如果不使用大括号,那么它会将fileins视为一个变量并对其进行扩展。因为,它可能没有设置,只是打印.b

相关:在使用bash的变量中何时需要大括号?


您根本不需要扩展旧值;bash有一个+=操作符:

1
file+="ins.b"


在bash中,您还可以引用像${file}这样的变量。所以这应该对你有用:

1
file="${file}ins.b"

1
file="${file}ins.b"

1
file=$file"ins.b"