tôi cố gắng để tìm thấy một quy trình cụ thể có chứa các thuật ngữ "someWord" và hai thuật ngữ khác được đại diện bởi $ 1 và $ 2pgrep -f với nhiều đối số
7 regex="someWord.*$1.*$2"
8 echo "$regex"
9 [ `pgrep -f $regex` ] && return 1 || return 0
trả về
./test.sh foo bar
someWord.*foo bar.*
./test.sh: line 9: [: too many arguments
Điều gì xảy ra biểu thức chính quy của tôi? Làm điều đó pgrep trực tiếp trong vỏ hoạt động tốt.
rằng có thể đúng và tôi sẽ kiểm tra nó nhưng không phải là regex của tôi bị che khuất như nó sẽ hiển thị "someWord . * foo bar. * "nhưng phải là" someWord. * foo. * bar "? – tommsen
Có vẻ như '$ 1' được đặt thành" foo bar "và' $ 2' không được đặt ở tất cả. Bạn có thể thêm nhiều 'test.sh' vào câu hỏi không? – chepner