Edit: SOLVED. Thank you all for your incredible insights! All of you helped me improve my code and knowledge! Special thanks to @Quibblekrust@thelemmy.club who just NAILED it. :)
I’m playing around with Bash just to learn.
LIST=$(ls); for i in $LIST; do echo "I found one!"; done
The variable “i” could literally be anything, as long as it doesn’t have a special meaning for Bash, in which case I’d have to escape it, right? Anyway, my real question is: how does do (or rather the whole for-expression) know that “i” here means “for every line/item that ls outputs”? The above one liner works great and writes “I found one!” the number of times corresponding to the number of lines or items that ls outputs. But I would like to understand why it worked…
I’m a complete beginner at both Bash and C, but I understand some basic concepts.


Anything immediately in the position after
foris an assignment of whatever you put there as a temporary variable inside the loop. You can call it whatever you want. The “i” is just used a lot in examples in programming for “item” or “iterate”, but you can literally call it anything. Anything that refers to it later will have a single item from the list in $LIST assigned to it for each run through the loop.