#!/bin/busybox sh if [ $# -ne 1 ] then cat < Concatenate then delete files as soon they appear in sink-dir to stdout. If multiple files are found in sink, the first in alphabetical order is choosen. must not exists, this program must create it (avoiding mistakes). Dropping an empty file in dir-sink will clean exit this program. EOT exit 1 fi SINKDIR=$1 mkdir "$SINKDIR" && cd "$SINKDIR" if [ $? -ne 0 ] then echo "Cannot mkdir/chdir to '$SINKDIR'" >&2 exit 2 fi while true do f=$(ls | head -n1) if [ -n "$f" ] then if [ -f "$f" -a -r "$f" ] then size=$(stat -c'%s' -- "$f") # Do the actual work on the following line cat -- "$f" && rm -v -- "$f" >&2 # Normal exit condition if [ $size -eq 0 ] then cd / && rmdir -v -- "$SINKDIR" >&2 exit 0 fi else echo "'$SINKDIR/$f' is not a readable file" >&2 exit 3 fi fi sleep 1 done