2014-10-09 135 views
0

我一直在嘗試發送也包含強引號的參數,但至今一直未成功。我試圖寫有很多變種,其也無法正常運行中的代碼是這樣的:如何將強引號作爲參數傳遞給bash函數

diffFile() 
{ 
    cat dir1/$1 | "$2" 
} 

diffFile "chkconfig" "awk '{print $1}'" 

但問題是,當我運行腳本的強引用被逃脫。 我怎樣才能通過強烈的報價?

+2

不要這樣做:[!我想在一個變量把一個命令,但是複雜的情況下總是失敗(http://mywiki.wooledge.org/BashFAQ/050) – fedorqui 2014-10-09 09:50:24

+0

我只是簡單的情況下需要它。無論如何感謝您的寶貴答覆。我不會在複雜的情況下使用它:) – 2014-10-09 10:54:26

+0

你爲什麼這樣做呢? awk將文件作爲參數。 – 2014-10-09 11:02:08

回答

1

確定後,我的腳本玩了一個解決方案。

diffFile() 
{ 
    cat dir1/$1 | eval "$2" 
} 

diffFile "chkconfig" "awk '{print \$1}'" 
+1

不鼓勵使用'eval'。花點時間問問自己* diffFile的目的是什麼。它是一個通用包裝器,它將'dirt'中的文件提供給讀取標準輸入的任意shell命令? – chepner 2014-10-09 12:53:34

相關問題