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

时间:2012-01-08 23:28:20

标签: linux bash shell

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

每次迭代,

我用过

 echo "$variable1"  >> file_name, 

 echo "$variable2"  >> file_name, 

但echo插入一个换行符,使其成为

 $v1

 $v2 

不是

     $v1 \tab  $v2

“\ c”不能换新行。

这篇文章 BASH shell script echo to output on same line

无济于事。

感谢

4 个答案:

答案 0 :(得分:6)

在涉及这个问题之后,我已经确定你要找的是echo -n

答案 1 :(得分:3)

如果您要在变量之间寻找单个选项卡,那么printf是一个不错的选择。

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

如果您希望它与您的示例完全相同,其中标签填充两侧都有空格:

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

答案 2 :(得分:2)

那里的选择很少:

  1. echo -n foo bar这很简单,但可能不适用于某些旧的UNIX系统,如HP-UX或SunOS。相反,将打印“-n”以及其余参数后跟新行。
  2. echo -e "foo bar\c"\c具有含义:“不产生进一步的输出”。我个人不喜欢这个解决方案,但有些UNIX向导使用它。
  3. printf %b "foo bar"我最喜欢这个解决方案。它非常便携且灵活。

答案 3 :(得分:1)

使用echo -n修剪换行符。看看是否有效