如何在 Bash 中将输出重定向到单行?

如何在 Bash 中将输出重定向到单行?

假设我们在 Linux shell 中的一行上运行两个程序,如下所示:

who -r; date

我应该添加什么才能获得一行输出?

答案1

printf "%s %s\n" "$(who -r)" "$(date)"

有很多引文,但都是必须的。更简单一点:

echo $(who -r; date)

这个故意没有引号。


另一种不需要捕获所有命令输出的选项是:将命令组合在一起,并通过管道传输组合输出paste

{ who -r; date; } | paste -s -d ' '

输出类似

         run-level 3  Mar  1 19:44 Tue Apr 18 15:10:19 UTC 2023

答案2

echo -n `who -r`; echo -n ' '; date

相关内容