in vim enable line numbering with
esc :set nu
using awk awk is used to get bits of files for example
awk -F: `{print $1}`
prints out the first entry (from the $1) of a file that uses : as a separator
The structure is
for VAR in list of space separated items; do action $VAR; done
Examples
For HOST in server a server; do echo $HOST; done For HOST in server{a,b}; do echo $HOST; done For HOST in server{a..b}; do echo $HOST; done
These all do the same thing
if statements use following structure
if <CONDITION>; then <STATEMENT> ... <STATEMENT> else <STATEMENT> ... <STATEMENT> fi
Conditions are from command test
[user@host ~]$ [[ 1 -eq 1 ]]; echo $? 0 [user@host ~]$ [[ 1 -ne 1 ]]; echo $? 1 [user@host ~]$ [[ 8 -gt 2 ]]; echo $? 0 [user@host ~]$ [[ 2 -ge 2 ]]; echo $? 0 [user@host ~]$ [[ 2 -lt 2 ]]; echo $? 1 [user@host ~]$ [[ 1 -lt 2 ]]; echo $? 0 The following examples demonstrate the Bash string comparison operators: [user@host ~]$ [[ abc = abc ]]; echo $? 0 [user@host ~]$ [[ abc == def ]]; echo $? 1 [user@host ~]$ [[ abc != def ]]; echo $? 0
will run a a command while a condition is meet.
here is an interesting example
while ! test -f test_file; do sleep 1s; done
this checks to see if a file called test_file exists if it does the while loop exits if not it keeps running
Case is a comparison of input with know conditions
here is an example
read -p "give me an animal:" animal case $animal in person) echo -e " aperson has 2 legs \n" ;; cat) echo -e "a cat has 4 lets \n" ;; *) ech0 -e "this covers all other conditions \n" exit 1 ;; esac