I have a trivial for loop in a bash script which is not working and I cannot see what is wrong.
#!/bin/bash
function deleteOut {
for index in {0..$1}
do
echo "/bin/rm -rf ./OUT/Message_${index}.log"
/bin/rm -rf ./OUT/Message_${index}.log
done
}
and called it using
deleteOut 5
I was expecting a loop like
/bin/rm -rf ./OUT/Message_0.log
/bin/rm -rf ./OUT/Message_1.log
/bin/rm -rf ./OUT/Message_2.log
/bin/rm -rf ./OUT/Message_3.log
/bin/rm -rf ./OUT/Message_4.log
/bin/rm -rf ./OUT/Message_5.log
Instead I got
/bin/rm -rf ./OUT/Message_{0..5}.log
I've solved the problem doing something like this instead
find ./OUT -name "Message_*.log" | xargs /bin/rm
but this is not the point. Why my first approach didn't work?