2013-02-01 57 views
0

我想把命令的輸出在bash變量,然後再使用該變量在其他命令如何把命令的輸出在bash變量

假設我想是這樣的

ls | $(variable) |awk '/$variable/{print "here"}'

+1

您需要更好的示例問題。目前的這個沒有任何意義。我們確實需要看到1.樣本輸入,2.需要的輸出,3.實際輸出,4.您嘗試過**的代碼,以解決實際問題**。祝你好運。 – shellter

回答

0

你可以試試:

variable=$(ls); awk "/$variable/"'{print "here"}' 

注1:/$variable/用雙引號括起來,否則它贏得不會被命令輸出所取代。

注2:上述命令可能失敗,因爲ls的輸出可能包含「/」或換行符,這將會中斷awk命令。根據您的目標,您可以將ls更改爲ls | tr '\n' ' ' | tr -d '/' | sed 's/ *$//g'(用空格替換所有換行符;刪除所有斜槓;刪除尾隨空格)。

注3:避免變量賦值污染當前shell的環境中,你可以用括號上面的命令,即(variable=$(some_command); awk "/$variable/"'{print "here"}')

0

我不知道你可以輕鬆地做到這一點,但我不知道你爲什麼要將它用於awk這樣的腳本。這裏的兩步版本,但我真的不知道是什麼確實

variable=$(ls) 
echo ${variable} | awk "/${variable}/{printf \"here\"}" 
+0

Acutally我想在單行中做到這一點。有沒有辦法 – user2027303

+0

好吧,你可以放一個';'。爲什麼它需要成爲單一管道? –

1

爲了把命令輸出到變量,你可以在bash使用以下格式

variable=`pwd` 
echo $variable 
1

或者

now=`date` 

返回蜱

這對我來說更簡單,因爲它可以在任何shell或perl中工作

+0

使用back-ticks ....現在對我來說這是新聞:) – shivams

相關問題