Environment : Ubuntu 14.04
Tools : sem, flock(recommend)
> $ cat a.sh
#!/bin/bash
str=0123456789
for i in {1..7}; do
str=$str$str
done
for i in {1..10}; do
echo $str >> out # (*a)
# sem "echo $str >> out" # (*b)
# flock out -c "echo $str >> out" # (*c)
done
> $ cat runa
#!/bin/bash
id=$1
for i in {1..10}; do
./a.sh&
done
> $ cat runa2
#!/bin/bash
for i in {1..10}; do
./runa&
done
> $ ./runa2
check
---------------
$ cat parout | uniq | wc -l
1
---------------
if 1 => OK, otherwise not-syncronized!!
(*a) ==> race condition!! :
(*c) sem ==> error!(sem bug!!)
(*b) flock ==> OK