seq -f 'echo %g' $NUM | sh

shorter loop than for loop

shorter loop than for loop seq -f 'echo %g' $NUM | sh for i in {0..$NUM}; do echo $i done
Sample Output
$ seq -f 'echo %g' 10 | sh
1
2
3
4
5
6
7
8
9
10

0
By: nati
2012-04-03 19:02:08
seq

These Might Interest You

  • Usually the MS-DOS cmd.exe processes in the whole FOR loop as one command and expands each var like %varname% in before (except the loop var of course). This command enables expansion of other vars than only the loop var during the FOR loop. The syntax of the var to expand is then !varname! inside the FOR loop. Use command endlocal to end the setlocal command. E.g. (only works from batch files, not from commandline directly): @echo off setlocal enabledelayedexpansion FOR %%A IN (*) DO ( set file=%%A echo !file! ) endlocal


    -1
    setlocal enabledelayedexpansion
    Marco · 2010-08-10 12:26:43 2
  • useful for loops like for i in $(cat list_of_servers); do ssh -q $i hostname; done if there is an unreachable server, you can just press ctrl + \ to skip that server and continue on with the loop


    7
    ctrl + \
    nottings · 2009-02-25 18:52:57 1
  • no need for a for loop when cat takes multiple arguments


    -4
    cat *
    bahamas10 · 2011-12-08 05:32:14 0
  • You can use this one-liner for a quick and dirty (more customizable) alternative to the watch command. The keys to making this work: everything exists in an infinite loop; the loop starts with a clear; the loop ends with a sleep. Enter whatever you'd like to keep an eye on in the middle. Show Sample Output


    1
    while (true); do clear; uname -n; echo ""; df -h /; echo ""; tail -5 /var/log/auth.log; echo ""; vmstat 1 5; sleep 15; done
    roknir · 2010-08-23 04:37:58 0
  • Useful for CSV files. In the command, the file in question is comma delimited but contains double quoted fields containing commas and contains no @ symbols (as confirmed with http://www.commandlinefu.com/commands/view/9998/delimiter-hunting). This command converts the delimiting commas to @s while preserving the commas in the fields using the "uniqueString" to mark the ends of lines.


    0
    sed 's/$/uniqueString/' file.old | sed 's/,/\n/g' | sed ':loop;/^\"[^\"]*$/N;s/\n/,/;/[^\"]$/t loop' | sed ':loop;N;s/\n/@/g;/uniqueString$/!b loop;s/uniqueString$//' > file.new
    moogmusic · 2012-01-06 10:06:40 0
  • If you want to operate on a set of items in Bash, and at least one of them contains spaces, the `for` loop isn't going to work the way you might expect. For example, if the current dir has two files, named "file" and "file 2", this would loop 3 times (once each for "file", "file", and "2"): for ITEM in `ls`; do echo "$ITEM"; done Instead, use a while loop with `read`: ls | while read ITEM; do echo "$ITEM"; done Show Sample Output


    10
    ls | while read ITEM; do echo "$ITEM"; done
    fletch · 2009-03-22 23:33:13 4

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands



Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: