0

我有一个具有三个功能的 bash 脚本。每个都有一个输出,我通过管道传输到 dzen2。下面是脚本的伪代码版本。

printVol()
{
LEVEL=getVolume
VOL='Volume: '$LEVEL
echo $VOL
}

printBattery()
{
LEVEL=getBat
BAT='Battery: '$LEVEL
echo $BAT
}

printDate()
{
DTE=getDTE
echo $DTE
}

#this is the line I need to figure out
printVol | dzen2 -x 900 && printBat | dzen2 -w 150 && printDate | dzen2

目标是将这些中的每一个打印到 dzen 栏。单独地,每个 dzen 调用都有效。如何同时将所有值发送到 dzen 栏?

编辑:我有三个不同的 dzen 调用,因为每个回声都需要专门定位在 dzen 条上。-x 和 -w 是定位标志。

4

2 回答 2

1

使用命令组:

{ printVol; printBat; printDate; } | dzen2 -x 900 -w 150

我假设将所有选项聚合到一次调用中是有意义的dzen

于 2013-04-18T14:37:08.037 回答
0

我不熟悉dzen- 我从您的示例中假设它从标准输入读取文本。所以在 bash 中,使用进程替换

dzen2 -x 900 < <(printVol)  
dzen2 -w 150 < <(printBat) 
dzen2        < <(printDate)

如果您需要将文本作为参数传递,则可以使用简单的命令替换:

dzen2 -x 900 "$(printVol)"  
dzen2 -w 150 "$(printBat)"  
dzen2        "$(printDate)"
于 2013-04-18T15:45:40.230 回答