我想将命令传递给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视为参数。
答案 0 :(得分:3)
试试这个:
eval $1
答案 1 :(得分:2)
您可以调用sh -c $1
来调用第一个参数作为新shell中的命令,以便扩展shell特殊字符。