próbuję znaleźć konkretny proces zawierający określenie "someWord" i dwa inne warunki reprezentowany przez 1 $ i $ 2pgrep -f z wieloma argumentami
7 regex="someWord.*$1.*$2"
8 echo "$regex"
9 [ `pgrep -f $regex` ] && return 1 || return 0
która zwraca
./test.sh foo bar
someWord.*foo bar.*
./test.sh: line 9: [: too many arguments
Co się dzieje moje wyrażenie regularne? Robienie tego pgrep bezpośrednio w powłoce działa dobrze.
że może być prawdą i będę go przetestować, ale nie jest moim regex utrudnione, gdyż wyświetla „someWord . * foo bar. * ", ale powinno być" someWord. * foo. * bar "? – tommsen
Wygląda, że '$ 1' jest ustawione na" pasek foo ", a' $ 2' w ogóle nie jest ustawione. Czy możesz dodać więcej "test.sh" do pytania? – chepner