SORU
12 HAZİRAN 2012, Salı


Bir bash betiği içinde xargs ile arama fonksiyonları

Xargs paralel olarak daha karmaşık bir işlev çağrısı için kullanmaya çalışıyorum.

#!/bin/bash
echo_var(){
    echo $1
return 0
}
seq -f "ng" 1 100 |xargs -n 1 -P 10 -i echo_var {} 
exit 0

Bu hata verir

xargs: echo_var: No such file or directory

Xargs bunu gerçekleştirmek için nasıl herhangi bir fikir, ya da başka bir çözüm(ler) hoş olurdu. Teşekkürler!

CEVAP
12 HAZİRAN 2012, Salı


İşlevi ihracat (denenmemiş) yapmalıdır:

export -f echo_var
seq -f "ng" 1 100 | xargs -n 1 -P 10 -i bash -c 'echo_var "$@"' _ {}

Bu yerleşik dış yerine printf seq kullanabilirsiniz:

printf "ng\n" {1..100} | xargs -n 1 -P 10 -i bash -c 'echo_var "$@"' _ {}

Ayrıca, return 0 exit 0 kullanarak Maskeler komutu önceki tarafından ortaya çıkabilecek herhangi bir hata değeri gibi. Eğer bir hata varsa hayır da, varsayılan ve biraz gereksiz böylece.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • jpmkm1

    jpmkm1

    4 NİSAN 2008