How to give a magic variable (placeholder) to a script?
Let's have a loop script:
#!/bin/bash
count=$1
shift
for i in $(seq 1 $count)
do
$*
done
I want to call it like that:
loop 5 echo Mambo number $i
However, Bash expands the variable before the script call and produces:
Mambo number
Mambo number
Mambo number
Mambo number
Mambo number
If I call it like that:
loop 5 echo Mambo number '$i'
the variable is not expanded within the script
Mambo number $i
Mambo number $i
Mambo number $i
Mambo number $i
Mambo number $i
Is there a clever way to use a magic variable in bash?
I want to achieve:
Mambo number 1
Mambo number 2
Mambo number 3
Mambo number 4
Mambo number 5
And also:
loop 3 touch 'foo-$i.log'
To create three files:
foo-1.log
foo-2.log
foo-3.log