ich versuche, einen bestimmten Prozess zu finden, den Begriff „someWord“ und zwei andere Begriffe von $ 1 und $ 2pgrep -f mit mehreren Argumenten
7 regex="someWord.*$1.*$2"
8 echo "$regex"
9 [ `pgrep -f $regex` ] && return 1 || return 0
dargestellt wird, enthält die
./test.sh foo bar
someWord.*foo bar.*
./test.sh: line 9: [: too many arguments
kehrt Was passiert, mein regelmäßiger Ausdruck? Das pgrep direkt in der Shell zu verwenden, funktioniert einwandfrei.
, die wahr sein könnte, und ich werde es testen, ist aber nicht mein regex behindert, da es „someWord zeigt . * foo bar. * "aber sollte" someWord. * foo. * bar "sein? – tommsen
Es sieht so aus, als ob "$ 1" auf "foo bar" eingestellt ist und "$ 2" gar nicht gesetzt ist. Können Sie der Frage mehr von 'test.sh' hinzufügen? – chepner