假设我们在 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