This script will iterate over a file and echo out every single line:
#!/bin/bash​for line in $(cat file.txt);doecho $linedone
Another way of writing is this:
#!/bin/bash​while read p; doecho $pdone <file.txt
#!/bin/bash​for ((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/bash​for x in `seq 1 100`; doecho $xdone
$1
here represent the first argument.
​if [ "$1" == "" ]; thenecho "This happens"fi
#!/bin/bash​if [ "$1" == "" ]; thenecho "This happens"elseecho "Something else happens"fi
Command line arguments are represented like this
#!/bin/bash​$1
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/bash​for 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/bash​locate 646.c | tail -n 1
This can be done like this:
#!/bin/bash​cat $(locate 646.c | tail -n 1)