May be the 'repeat' function in the 'examples' is a bit lengthy, and use
subshells, the example I got is
===================================
# "repeat" command. Like:
#
# repeat 10 echo foo
repeat ()
{
local count="$1" i;
shift;
for i in $(seq 1 "$count");
do
eval "$@";
done
}
# Subfunction needed by `repeat'.
seq ()
{
local lower upper output;
lower=$1 upper=$2;
if [ $lower -ge $upper ]; then return; fi
while [ $lower -le $upper ];
do
echo -n "$lower "
lower=$(($lower + 1))
done
echo "$lower"
}
===================================
May be a 1 liner version with no subshells could be something along those
lines.
$ repeat() { typeset n c;printf -v n '%*s' $1 ' ';shift;c="$@"; eval ${n//
/$c;};}
$ repeat 5 echo foo
foo
foo
foo
foo
foo
I don't know if printf -v n ... is equivalent to n=$(printf ...) I guess
there is a subshell here so that's why I used -v, if they are equiv then
the 1 liner can be shortened for a better readability :-)