I wrote a shell snippet shown as below:
is_first=t
for f in "$path"/"m*"
do
printf "%s\n" $f
printf "%s\n" $is_first
if [[ "$is_first" = "t" ]]; then
is_first=f
printf "%s\n" $is_first
else
printf "%s\n" $is_first
fi
printf "%s\n" $is_first
done
The output is as follows:
./merge_non-null
./merge_non-null_bak.sh
./merge_non-null.sh
t
f
f
I'm wondering, how did if-else
execute in a for loop? It seems it runs only for the first loop, and all skipped afterwards.
Also, why does printf "%s\n" $is_first
only executed for for the first loop?
The output I expected is (note the sequence). I believe I've missed something. Sorry if it's too stupid.
./merge_non-null
t
f
f
./merge_non-null_bak.sh
f
f
f
./merge_non-null.sh
f
f
f