Bash 如何将字符串附加到同一行而不是创建新行?

Bash 如何将字符串附加到同一行而不是创建新行?,bash,redirect,Bash,Redirect,重定向到文件对于将字符串作为新行附加到文件非常有用,如 echo "foo" >> file.txt echo "bar" >> file.txt 结果: foo bar foobar 但是也可以将字符串重定向到文件中的同一行吗 例如: echo "foo" <redirection-command-for-same-line> file.txt echo "bar" <redirection-command-for-same-line> f

重定向到文件对于将字符串作为新行附加到文件非常有用,如

echo "foo" >> file.txt
echo "bar" >> file.txt
结果:

foo
bar
foobar
但是也可以将字符串重定向到文件中的同一行吗

例如:

echo "foo" <redirection-command-for-same-line> file.txt
echo "bar" <redirection-command-for-same-line> file.txt

换行符是通过
echo
添加的,而不是通过重定向添加的。只需将
-n
开关转到
echo
即可将其抑制:

echo -n "foo" >> file.txt
echo -n "bar" >> file.txt
-n
不要输出尾随的换行符


将结果回送到一行的另一种方法是简单地将结果分配给变量。例如:

j=$(echo foo)
i=$(echo bar)
echo $j$i
foobar
echo $i $j
bar foo

当您有更复杂的函数时,这尤其有用,可能是一个复杂的“awk”语句来提取一行中的特定单元格,然后将其与另一个集合配对。

这很有效。尽管必须注意文件末尾没有“空行”。当运行这两个命令并打开file.txt时,它包含:--------------------------------------n“foo”-n“bar”--------------------------------------每一行都在一个新行上,但是回复似乎不允许新行。