2013-03-01 18 views

cevap

30

Sen sözdizimi aşağıdaki kullanabilirsiniz:

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

olsa boşluk ve noktalı virgül ile dikkatli olun. Parantezler arasındaki her komuttan sonra, noktalı virgül gereklidir (sonuncudan sonra bile). senin awk destekliyorsa

+0

ben ne yapmalıyımİç kabukta bazı $ VARIABLE kullanmalıyım? Varsayılan olarak devralmaz. –

+0

Sanırım miras kalıyor. Örneğin: 'a = abc'yi dışa aktarın ve' echo% 'yerine' echo $ a% 'değerini kullanın. – kamituel

+0

Bana işaret eden bir iş arkadaşınız, bir xargs çağrısını diğerine pipetleyebilmenizdir, bu da tek tırnaklar arasına koymak için trickier bir komutunuz varsa kullanışlıdır: 'psql -c 'çubuğundan foo seçin | xargs -I% sh -c '{echo%; 1 uyku; } '| xargs -L1 -I {} curl -X POST-H "Content-Type: uygulama/json" -d "{ " kod ":" 123 ", " foo ":" {} " } '" https: //myapi.com/baz "' – cdf

0

içeren sleepecho adında bir kabuk komut dosyası tarafından

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

echo değiştirin:

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

veya awk atlayıp tamamen xargs

ps aux | while read -r user rest; 
    echo $user 
    sleep 1; 
done 
İlgili konular