Điểm:0

Làm cách nào để tắt tập lệnh đang chạy trong nền nhưng chỉ nhận được PID của tập lệnh khi nó được chạy với một cờ nhất định

lá cờ in
Cas

Tôi có thể chạy nhiều phiên bản của tập lệnh bash trong nền và mọi thứ đều tuyệt vời. Tôi đã thiết lập nó theo cách mà một số người có -x như một lá cờ và một số thì không. Nhìn thấy:

./test.sh &
./test.sh &
./test.sh -x &
./test.sh -x &

Bây giờ, tôi muốn hủy tất cả các tập lệnh được chạy với -x lá cờ. Tôi luôn tắt các tập lệnh chạy trong nền bằng cách này:

ps-aux | grep -Po "^\S{1,}\s*\K\d*(?=.*test.sh$)" | \
trong khi mức đọc -r
làm
   giết cấp độ $
xong

Tuy nhiên, ps-aux không hiển thị bất kỳ đối số/cờ nào được đưa ra khi chạy tập lệnh. Vì vậy, khi sử dụng nó, tôi không thể chỉ lấy các tập lệnh được chạy cùng với -x. Có một giải pháp cho điều này? Tôi chỉ muốn hủy các tập lệnh nền được chạy với -x.

Điểm:1
lá cờ uz
Jos

Sử dụng pkill lệnh với -f lá cờ.

Lệnh kiểm tra pkill.sh sẽ giết tất cả các quy trình bằng cách sử dụng kiểm tra.sh như tên lệnh. Sử dụng -f cờ được giải thích trong người đàn ông pgrep, như pgreppkill sử dụng cú pháp tương tự:

-f, --full

Mẫu thường chỉ khớp với tên quy trình. Khi -f được đặt, dòng lệnh đầy đủ sẽ được sử dụng.

Tuy nhiên, bạn cần bao quanh mẫu tìm kiếm bằng dấu ngoặc kép và thoát khỏi - của -x. Cho nên pkill -f "test.sh \-x" sẽ chỉ giết kiểm tra.sh các tiến trình chạy với -x lá cờ.

lá cờ hr
... hoặc sử dụng cờ `--` end-of-options `pkill -f -- "test.sh -x"` ... bạn cũng có thể sử dụng mẫu `"test.sh[ \t]+-x "` để cho phép khoảng trắng ngang tùy ý
lá cờ uz
Jos
Điểm tốt @steeldriver. Tôi luôn xoay sở để quên `--`.
lá cờ hr
... khi bạn nghĩ về nó, thật kỳ lạ khi `pgrep`/`pkill` không triển khai `-e pattern` mà grep thông thường phải phân biệt mẫu khỏi các tùy chọn
Điểm:1
lá cờ bd

Cố gắng

ps -aF | grep -Po "^\S{1,}\s*\K\d*(?=.*test.sh -x$)"

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.