Команда передана в качестве аргумента скрипту оболочки - PullRequest
4 голосов
/ 28 апреля 2010

Я хочу передать команду скрипту оболочки. Эта команда является командой 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 ]

3 голосов
/ 29 апреля 2010

попробуйте это:

eval $1
2 голосов
/ 29 апреля 2010

Вы можете вызвать sh -c $1, чтобы вызвать первый аргумент в качестве команды в новой оболочке, чтобы специальные символы оболочки были расширены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...