2010-04-28 112 views
4

我想將命令傳遞給shell腳本。該命令是一個grep命令。在執行我收到以下錯誤,請幫忙:作爲參數傳遞給shell腳本的命令

myscript.sh "egrep 'ERROR|FATAL' \*20100428\*.log | grep -v aString" 

myscript.sh是一個簡單的腳本:

#!/bin/ksh 

cd log 

$1 

的錯誤是:

egrep: can't open | 
egrep: can't open grep 
egrep: can't open -v 
egrep: can't open aString 

錯誤是因爲egrap看到|,grep,-v和aString作爲參數。

回答

3

試試這個:

eval $1 
+0

非常感謝。它幫助了我。 – 2010-04-30 02:17:32

+0

更正確的版本是'eval'$ 1「',它處理多個空格字符並防止文件通配。 – 2010-07-07 21:23:20

2

您可以撥打sh -c $1調用的第一個參數爲命令在一個新的外殼,使得外殼的特殊字符將被擴大。

相關問題