Ví dụ, nếu tôi thực hiệnLàm thế nào để ngủ trong 1 giây giữa mỗi lệnh xargs?
ps aux | awk '{print $1}' | xargs -I {} echo {}
Tôi muốn cho giấc ngủ vỏ trong 1 giây giữa mỗi echo
.
Tôi làm cách nào để thay đổi lệnh shell?
Ví dụ, nếu tôi thực hiệnLàm thế nào để ngủ trong 1 giây giữa mỗi lệnh xargs?
ps aux | awk '{print $1}' | xargs -I {} echo {}
Tôi muốn cho giấc ngủ vỏ trong 1 giây giữa mỗi echo
.
Tôi làm cách nào để thay đổi lệnh shell?
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).
Thay echo
bởi một số kịch bản shell tên sleepecho
chứa
#!/bin/sh
sleep 1
echo $*
Nếu awk
bạn hỗ trợ nó:
ps aux | awk '{ system("sleep 1"); print $1 }' | xargs -I {} echo {}q
hoặc bỏ qua awk
và xargs
hoàn toàn
ps aux | while read -r user rest;
echo $user
sleep 1;
done
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. –
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
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