2013-03-01 39 views

Trả lời

30

Bạn có thể sử dụng sau cú pháp:

ps aux | awk '{print $1}' | xargs -I % sh -c '{ echo %; sleep 1; }' 

Hãy cẩn thận với không gian và dấu chấm phẩy mặc dù. Sau mỗi lệnh giữa các dấu ngoặc, dấu chấm phẩy được yêu cầu (ngay cả sau dấu chấm cuối cùng).

+0

Tôi nên làm gì nếu Tôi cần phải sử dụng một số $ VARIABLE bên trong vỏ bên trong? Nó không kế thừa nó theo mặc định. –

+0

Tôi nghĩ rằng nó kế thừa nó. Ví dụ: 'export a = abc' và sau đó sử dụng 'echo $ a%' thay vì 'echo%'. – kamituel

+0

Một đồng nghiệp chỉ ra cho tôi là bạn có thể đặt một xargs vào một cái khác, điều này rất tiện lợi nếu bạn có một lệnh phức tạp hơn để đặt giữa các dấu nháy đơn: 'psql -c 'chọn foo từ thanh" | xargs -I% sh -c '{echo%; ngủ 1; } '| xargs -L1 -I {} curl -X POST -H "Loại Nội dung: application/json" -d '{ "mã": "123", "foo": "{}" }' "https: //myapi.com/baz "' – cdf

0

Thay echo bởi một số kịch bản shell tên sleepecho chứa

#!/bin/sh 
sleep 1 
echo $* 
0

Nếu awk bạn hỗ trợ nó:

ps aux | awk '{ system("sleep 1"); print $1 }' | xargs -I {} echo {}q 

hoặc bỏ qua awkxargs hoàn toàn

ps aux | while read -r user rest; 
    echo $user 
    sleep 1; 
done 
Các vấn đề liên quan