将多个变量回显到dzen bar

时间:2013-04-18 14:33:00

标签: bash scripting

我有一个包含三个函数的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是定位标志。

2 个答案:

答案 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)"