I’m currently refactoring a script which has slowly grown beyond control. I’m trying to spin off repetition into functions. However, I have a repeated test being called from a loop, and want it to return continue
.
Shellcheck says
SC2104: In functions, use `return` instead of `continue`.
And the shellcheck wiki says don’t do it. But is there a way?
Below is an example:
#!/bin/sh
AFunction () {
if [[ "${RED}" -lt 3 ]]; then
echo "cont"
continue
else
echo "nope"
fi
}
for i in 1 2 3 4 5
do
RED=${i}
AFunction
echo ${i}
done
This is the output:
cont
1
cont
2
nope
3
nope
4
nope
5
But I would expect
cont
cont
nope
3
nope
4
nope
5
Go to Source
Author: Stripy42