0
我一直在嘗試發送也包含強引號的參數,但至今一直未成功。我試圖寫有很多變種,其也無法正常運行中的代碼是這樣的:如何將強引號作爲參數傳遞給bash函數
diffFile()
{
cat dir1/$1 | "$2"
}
diffFile "chkconfig" "awk '{print $1}'"
但問題是,當我運行腳本的強引用被逃脫。 我怎樣才能通過強烈的報價?
我一直在嘗試發送也包含強引號的參數,但至今一直未成功。我試圖寫有很多變種,其也無法正常運行中的代碼是這樣的:如何將強引號作爲參數傳遞給bash函數
diffFile()
{
cat dir1/$1 | "$2"
}
diffFile "chkconfig" "awk '{print $1}'"
但問題是,當我運行腳本的強引用被逃脫。 我怎樣才能通過強烈的報價?
確定後,我的腳本玩了一個解決方案。
diffFile()
{
cat dir1/$1 | eval "$2"
}
diffFile "chkconfig" "awk '{print \$1}'"
不鼓勵使用'eval'。花點時間問問自己* diffFile的目的是什麼。它是一個通用包裝器,它將'dirt'中的文件提供給讀取標準輸入的任意shell命令? – chepner 2014-10-09 12:53:34
不要這樣做:[!我想在一個變量把一個命令,但是複雜的情況下總是失敗(http://mywiki.wooledge.org/BashFAQ/050) – fedorqui 2014-10-09 09:50:24
我只是簡單的情況下需要它。無論如何感謝您的寶貴答覆。我不會在複雜的情況下使用它:) – 2014-10-09 10:54:26
你爲什麼這樣做呢? awk將文件作爲參數。 – 2014-10-09 11:02:08