我想把命令的輸出在bash變量,然後再使用該變量在其他命令如何把命令的輸出在bash變量
假設我想是這樣的
ls | $(variable) |awk '/$variable/{print "here"}'
我想把命令的輸出在bash變量,然後再使用該變量在其他命令如何把命令的輸出在bash變量
假設我想是這樣的
ls | $(variable) |awk '/$variable/{print "here"}'
你可以試試:
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"}')
我不知道你可以輕鬆地做到這一點,但我不知道你爲什麼要將它用於awk
和這樣的腳本。這裏的兩步版本,但我真的不知道是什麼確實:
variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"
Acutally我想在單行中做到這一點。有沒有辦法 – user2027303
好吧,你可以放一個';'。爲什麼它需要成爲單一管道? –
爲了把命令輸出到變量,你可以在bash使用以下格式
variable=`pwd`
echo $variable
您需要更好的示例問題。目前的這個沒有任何意義。我們確實需要看到1.樣本輸入,2.需要的輸出,3.實際輸出,4.您嘗試過**的代碼,以解決實際問題**。祝你好運。 – shellter