Comments (2)
It's a C style for loop with blank values. It doesn't set a loop variable, it doesn't have a condition and it doesn't have an iterator. The side-effect of this is an infinite loop.
C Style loop:
for ((i=0;i<100;i++)); do
echo "$i"
done
Semi blank (Infinite loop with iterator and variable):
for ((i=0;;++i)); do
echo "$i"
done
Blank
for((;;)); do
echo "$i"
done
from pure-bash-bible.
Well, yes I know but I don't you got my question. I was wondering how the interpreter / compiler translate this. So I made a quick snipped in c.
#include <stdio.h>
int main() {
for(;;)
printf("Hello GH");
return 0;
}
Which is compiled to:
.file "main.c"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
.L2:
movl $84, %edi
call putchar@PLT
jmp .L2
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (GNU) 8.1.1 20180531"
.section .note.GNU-stack,"",@progbits
And here is the loop if we take a closer look at L2. I mean it is hard to express but is it like:
// pseudo code
// for(
handleFor() {
if (loop_variable, == EMPTY && condition == EMPTY && iterator == EMPTY) {
infinite_loop= true;
}
}
from pure-bash-bible.
Related Issues (20)
- Alternative to dos2unix
- Inaccurate Caveat for `split()`
- Much More Compatible `reverse_array()`
- Splitting a string on a delimiter HOT 1
- Bash HOT 1
- Pedantic use of ':' "in place of a temporary variable." HOT 1
- shift at least... HOT 2
- basename with one argument fails with set -u HOT 1
- read, store, write a file including nulls
- Is this project active? HOT 4
- Typo in function date HOT 1
- Using coproc with read in non-interactive shells for sleep alternative
- Bash
- [[ ' aaaa' =~ a* ]] && echo ${BASH_REMATCH[0]} || echo no HOT 8
- for loop HOT 3
- wierd if statement HOT 1
- Is the Repository Dead? HOT 1
- Bash HOT 1
- bash read multi-line string with Process Substitution HOT 1
- UPPER CASE %02X instead of x
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pure-bash-bible.