я пытаюсь найти конкретный процесс, содержащий термин «someWord» и два других термины, представленный $ 1 и $ 2pgrep -f с несколькими аргументами
7 regex="someWord.*$1.*$2"
8 echo "$regex"
9 [ `pgrep -f $regex` ] && return 1 || return 0
который возвращает
./test.sh foo bar
someWord.*foo bar.*
./test.sh: line 9: [: too many arguments
Что происходит с мое регулярное выражение? Выполнение этого pgrep непосредственно в оболочке отлично работает.
, что может быть правдой, и я буду тестировать его, но это не мое регулярное выражение мешает, как это показывает «someWord . * foo bar. * "но должен быть" someWord. * foo. * bar "? – tommsen
Похоже, что '$ 1' установлен в« foo bar », а' $ 2' вообще не установлен. Можете ли вы добавить еще вопрос 'test.sh' к вопросу? – chepner