Guest

basic example of threading with xargs

By: a guest on Aug 18th, 2010  |  syntax: Bash  |  size: 1.00 KB  |  hits: 102  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. stu@sente ~ $ cat xargstest.sh
  2. #!/bin/sh
  3.  
  4. echo "$(date +%s) OPEN $0: $@"
  5. sleep $((RANDOM%3 + 1))
  6. echo "$(date +%s) CLOS $0: $@"
  7.  
  8. stu@sente ~ $ printf "arg%d\n" {0..10} | xargs -n3 ./xargstest.sh
  9. 1282172004 OPEN ./xargstest.sh: arg0 arg1 arg2
  10. 1282172005 CLOS ./xargstest.sh: arg0 arg1 arg2
  11. 1282172005 OPEN ./xargstest.sh: arg3 arg4 arg5
  12. 1282172006 CLOS ./xargstest.sh: arg3 arg4 arg5
  13. 1282172006 OPEN ./xargstest.sh: arg6 arg7 arg8
  14. 1282172009 CLOS ./xargstest.sh: arg6 arg7 arg8
  15. 1282172009 OPEN ./xargstest.sh: arg9 arg10
  16. 1282172010 CLOS ./xargstest.sh: arg9 arg10
  17.  
  18. stu@sente ~ $ printf "arg%d\n" {0..10} | xargs -P2 -n3 ./xargstest.sh
  19. 1282172014 OPEN ./xargstest.sh: arg3 arg4 arg5
  20. 1282172014 OPEN ./xargstest.sh: arg0 arg1 arg2
  21. 1282172016 CLOS ./xargstest.sh: arg3 arg4 arg5
  22. 1282172016 CLOS ./xargstest.sh: arg0 arg1 arg2
  23. 1282172016 OPEN ./xargstest.sh: arg6 arg7 arg8
  24. 1282172016 OPEN ./xargstest.sh: arg9 arg10
  25. 1282172019 CLOS ./xargstest.sh: arg6 arg7 arg8
  26. 1282172019 CLOS ./xargstest.sh: arg9 arg10