我有一个包含三个函数的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调用,因为每个echo都需要专门定位在dzen栏上。 -x和-w是定位标志。
答案 0 :(得分:1)
使用命令组:
{ printVol; printBat; printDate; } | dzen2 -x 900 -w 150
我认为将所有选项汇总到dzen
的单个调用中是有意义的。
答案 1 :(得分:0)
我不熟悉dzen
- 我从你的例子中假设它从stdin中读取文本。所以在bash中,使用process substitutions
dzen2 -x 900 < <(printVol)
dzen2 -w 150 < <(printBat)
dzen2 < <(printDate)
如果您需要将文本作为参数传递,则简单命令替换将执行:
dzen2 -x 900 "$(printVol)"
dzen2 -w 150 "$(printBat)"
dzen2 "$(printDate)"