在Linux shell的Bash脚本中,如何在同一行打印到文件?

7
在Linux shell bash脚本中,如何在同一行打印到文件?
在每次迭代时,
我使用了
 echo "$variable1"  >> file_name, 

 echo "$variable2"  >> file_name, 

但是echo会插入一个换行符,因此变成了:
 $v1

 $v2 

不是

     $v1 \tab  $v2

"\c"无法吞噬换行符。

这篇帖子 BASH shell脚本echo在同一行输出 对我没有帮助。

谢谢。

4个回答

7

在阅读完那个问题之后,我决定你需要的是echo -n


4

如果你想在变量之间加入单个制表符,那么printf是一个不错的选择。

printf '%s\t%s' "$v1" "$v2" >> file_name

如果您希望完全按照示例进行,其中选项卡两侧都用空格填充:

printf '%s \t %s' "$v1" "$v2" >> file_name

2

这里有几个选项:

  1. echo -n foo bar 这个方法很简单,但在一些旧的UNIX系统上可能不起作用,例如HP-UX或SunOS。代替的是-n将会和其余的参数一起打印,并且跟随着一个新行。
  2. echo -e "foo bar\c"\c有特殊含义:“不再产生输出”。我个人不喜欢这种解决方案,但一些UNIX巫师使用它。
  3. printf %b "foo bar" 我最喜欢的方法是使用这种解决方案。它非常灵活并且相当可移植。

1
使用echo -n来去除换行符。看看是否有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接