linux - 从两个嵌套程序设置 bash 变量

标签 linux bash shell command-line

我需要多次运行应用程序并使用一些命令获取一些统计信息。 我打算做的一个简单例子是:

/usr/bin/time --format="%U" date

这一行将打印:

Seg Nov  2 22:15:28 BRST 2015
0.00

我需要格式化这个输出,我想用 bash 来做这个,就像这样:

echo "$usertime & $date"

$usertime/usr/bin/time --format="%U" 的结果,$date 是结果日期

我知道下面的方法可行,但我不知道如何将值分成两个变量:

OUTPUT=`/usr/bin/time --format="%U" date`
echo "$OUTPUT"

上面的输出是:

0.00
Seg Nov  2 22:23:50 BRST 2015

(倒序)

最佳答案

使用 awk

这里,awk 用于反转行序并格式化输出:

$ /usr/bin/time --format="%U" date 2>&1 | awk 'NR==1{d=$0;next} {print $0 " & " d}'
0.00 & Mon Nov  2 16:58:40 PST 2015

使用 sed

$ /usr/bin/time --format="%U" date 2>&1 | sed -E 'N; s/([^\n]*)\n(.*)/\2 \& \1/'
0.00 & Mon Nov  2 17:01:15 PST 2015

使用 shell

$ /usr/bin/time --format="%U" date 2>&1 | ( read d; read t; echo "$t & $d" )
0.00 & Mon Nov  2 17:04:40 PST 2015

关于linux - 从两个嵌套程序设置 bash 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33489472/

相关文章:

linux - 错误:running as root dont use sudo with this script

linux - 使用正确的 grep 选项

linux - 使用 sed 的 Shell 脚本句柄字符串

linux - Linux Mint 18.2如何修复菜单旁边的填充

linux - 连接时自动检测 USB 设备名称

linux - 如何在 Ubuntu 上运行无扩展名(也许是 ELF)文件?

bash - 在bash脚本中执行sudo命令而不显示它

Linux NASM 检测 EOF

linux - 如何在 linux 中最后一次出现特定命令之前运行所有命令

java - 通过shell脚本在Java程序中从计算机读取图像文件