2013-04-18 102 views
0

我有一個bash腳本有三個功能。每個都有我輸出到dzen2的輸出。以下是該腳本的僞代碼版本。回聲多個變量dzen酒吧

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欄。 -x和-w是定位標誌。

回答

1

使用命令組:

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

我假設是有意義的聚集所有的選項進入到dzen一個電話。

+0

我遇到的主要問題是,我需要每一回波定位在dzen酒吧的特定部分。 -x和-w是定位標誌。我不認爲將他們分組可以解決這個問題。 – spassen

+0

所以你有三個不同的輸入和三個不同的目的地。我沒有看到你是如何將他們結合起來的。 – chepner

+0

我見過多個變量被髮送到dzen欄的例子,變量的位置被設置。我只是不確定這是否完成。我無法找到定位具體參數的方法。 – spassen

0

我不熟悉dzen - 我從你的例子中假設它從標準輸入讀取文本。所以在bash,使用process substitutions

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

如果您需要通過文本作爲參數,而不是簡單的命令替換就可以了:

dzen2 -x 900 "$(printVol)" 
dzen2 -w 150 "$(printBat)" 
dzen2  "$(printDate)"