命令作为参数传递给shell脚本

时间:2010-04-28 19:55:18

标签: unix shell scripting

我想将命令传递给shell脚本。该命令是grep命令。执行时我收到以下错误,请帮助:

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视为参数。

2 个答案:

答案 0 :(得分:3)

试试这个:

eval $1

答案 1 :(得分:2)

您可以调用sh -c $1来调用第一个参数作为新shell中的命令,以便扩展shell特殊字符。