Test statement equality as so:
read t1 read t2 if test $t1 != $t2; then echo 'variables do not match' else echo 'variables match' fi exit 0
These deal with multiple states rather than forking conditions.
#!/bin/bash # Simple case demonstration echo "What's your favourite creature?" read CRE case $CRE in human | humanoids ) echo "Why is $CRE always standard?" ;; troll | monsters ) echo "Not exactly known for their character ..." ;; owlbears | monsters ) echo "Really you're a wizard fan" ;; esac
While and Until
This prints from 1 until 9.
COUNTER=1 while [ $COUNTER -lt 2 ]; do > ((COUNTER++)) > echo $COUNTER > done
There’s also ‘until’, which stops when something is true, rather than keeping going when something is true.
for i in $( ls ); do > du -sh $i > done
The sequences tool counts up from X in jumps of Y to number Z.
Count from 1 to 10.
Count from 4 to 11.
seq 4 11
Count from 1 to 100 in steps of 5.
seq 1 5 100