
basic example of threading with xargs
By: a guest on Aug 18th, 2010 | syntax:
Bash | size: 1.00 KB | hits: 102 | expires: Never
stu@sente ~ $ cat xargstest.sh
#!/bin/sh
echo "$(date +%s) OPEN $0: $@"
sleep $((RANDOM%3 + 1))
echo "$(date +%s) CLOS $0: $@"
stu@sente ~ $ printf "arg%d\n" {0..10} | xargs -n3 ./xargstest.sh
1282172004 OPEN ./xargstest.sh: arg0 arg1 arg2
1282172005 CLOS ./xargstest.sh: arg0 arg1 arg2
1282172005 OPEN ./xargstest.sh: arg3 arg4 arg5
1282172006 CLOS ./xargstest.sh: arg3 arg4 arg5
1282172006 OPEN ./xargstest.sh: arg6 arg7 arg8
1282172009 CLOS ./xargstest.sh: arg6 arg7 arg8
1282172009 OPEN ./xargstest.sh: arg9 arg10
1282172010 CLOS ./xargstest.sh: arg9 arg10
stu@sente ~ $ printf "arg%d\n" {0..10} | xargs -P2 -n3 ./xargstest.sh
1282172014 OPEN ./xargstest.sh: arg3 arg4 arg5
1282172014 OPEN ./xargstest.sh: arg0 arg1 arg2
1282172016 CLOS ./xargstest.sh: arg3 arg4 arg5
1282172016 CLOS ./xargstest.sh: arg0 arg1 arg2
1282172016 OPEN ./xargstest.sh: arg6 arg7 arg8
1282172016 OPEN ./xargstest.sh: arg9 arg10
1282172019 CLOS ./xargstest.sh: arg6 arg7 arg8
1282172019 CLOS ./xargstest.sh: arg9 arg10