How do I use bash for loop in one line under UNIX or Linux operating systems?
The syntax is as follows to run for loop from the command prompt.
Adblock detected 😱
My website is made possible by displaying online advertisements to my visitors. I get it! Ads are annoying but they help keep this website running. It is hard to keep the site running and producing new content when so many people block ads. Please consider donating money to the nixCraft via
PayPal/
Bitcoin, or become a
supporter using Patreon.
Run Command 5 Times
for i in {1..5}; do COMMAND-HERE; done |
for i in {1..5}; do COMMAND-HERE; done
OR
for((i=1;i<=10;i+=2)); do echo "Welcome $i times"; done |
for((i=1;i<=10;i+=2)); do echo "Welcome $i times"; done
Work On Files
for i in *; do echo $i; done |
for i in *; do echo $i; done
OR
for i in /etc/*.conf; do cp $i /backup; done |
for i in /etc/*.conf; do cp $i /backup; done
Posted by: Vivek Gite
The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.
OK, but how do I run two commands in the for loop? for () command1; command; done
???
two commands:
for i in (); do echo $i ; ls $i; done
nested for:
for i in {0..3}; do for j in {0..9}; do echo -n \($i, $j\); echo Is today the $i$j \?; done; done
I’d suggest you add an example of this to https://www.cyberciti.biz/faq/bash-for-loop/ also that would have helped me…maybe with a ToC at the top as well :)
Thanks for this.
For the very rare case yout got file names with a leading dash:
for i in *; do echo $i; done [ will not show files with leading dash ]
for i in “*”; do echo $i; done [ will show files with leading dash (but not one file per line) ]
Love it! Thanks!
Work on Folders:
for i in */; do (cd “$i” && git fetch) done
Thanks for this!
It saved me hours of banging my head on the table
thanks
Hi, I’m new in bash, please help me somebody. ..
I have one folder in linux server and in folder has some *.sql file, so I want to execute all the sql in my mysql sequencely one by one. We also want output on my display as well as in log file for every files execution error. Ex. /root/desktop/sql/1_ff_f_update. And 2_*, 3_* so on. Count of the file was change every time so we can not tell u of count of the files….
If possible help me..
Thanks in advance. .