This script will iterate over a file and echo out every single line:
#!/bin/bashfor line in $(cat file.txt);doecho $linedone
Another way of writing is this:
#!/bin/bashwhile read p; doecho $pdone <file.txt
#!/bin/bashfor ((i = 0; i < 10; i++)); doecho $idone
Another way to write this is by using the program
seq. Seq is pretty much like
range() in python. So it can be used like this:
#!/bin/bashfor x in `seq 1 100`; doecho $xdone
$1 here represent the first argument.
if [ "$1" == "" ]; thenecho "This happens"fi
#!/bin/bashif [ "$1" == "" ]; thenecho "This happens"elseecho "Something else happens"fi
Command line arguments are represented like this
This is the first command line argument.
If you do a ping-sweep with host the command will take about a second to complete. And if you run that against 255 hosts I will take a long time to complete. To avoid this we can just deamonize every execution to make it faster. We use the
& to daemonize it.
#!/bin/bashfor ip in $(cat ips.txt); doping -c 1 $ip &done
It has happened to me several times that I want to input the output of a command into a new command, for example:
I search for a file, find three, and take the last line, which is a path. Now I want to cat that path:
#!/bin/bashlocate 646.c | tail -n 1
This can be done like this:
#!/bin/bashcat $(locate 646.c | tail -n 1)