≡ Menu

HowTo: Use bash For Loop In One Line

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.

Run Command 5 Times

for i in {1..5}; do COMMAND-HERE; 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 /etc/*.conf; do cp $i /backup; done
Share this tutorial on:
{ 8 comments… add one }
  • Kingpin March 21, 2013, 12:13 pm

    OK, but how do I run two commands in the for loop? for () command1; command; done

    • Anne August 22, 2013, 5:00 pm

      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

  • roger September 25, 2013, 5:50 pm

    I’d suggest you add an example of this to http://www.cyberciti.biz/faq/bash-for-loop/ also that would have helped me…maybe with a ToC at the top as well :)

  • w February 13, 2014, 10:49 am

    Thanks for this.

  • ronator October 14, 2014, 2:41 pm

    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) ]

  • Anne February 13, 2015, 11:08 pm

    Love it! Thanks!

  • Jakob June 8, 2016, 10:10 am

    Work on Folders:

    for i in */; do (cd “$i” && git fetch) done

  • Jimy July 21, 2016, 4:35 am

    Thanks for this!
    It saved me hours of banging my head on the table

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , , , , , , ,