from:Sep 23 2016
mathematical operation:
floating number,bc calculator:
we can also use bc in shell scripts:
if - then - else
number comparison:
n1 -eq n2
n1 -ge n2
n1 -gt n2
n1 -le n2
n1 -lt n2
n1 -ne n2
if - then - elif, notice that the second elif won't be executed, though it's also right.
strings comarison:
str1 = str2
str1 != str2
str1 < str2
str1 /> str2
-n str1
-z str1
using file comparisons:
-d file checks if file exists and is a dictory
-e file checks if file exists
-f file checks if file exists and is a file
-r file checks if file exists and is readable
-s file checks if file exists and is not empty
-w file checks if file exists and is writable
-x file checks if file exists and is executable
-o file checks if file exists and is owned by the current user
-G file checks if file exists and the default group is the same as the current user
file1 -nt file2 checks if file1 is newer than file2
file1 -ot file2 checks if file1 is older than file2
considering compound testing
working with advanced if-then features
((expression))
var++
var--
++var
--var
! logical negation
~ bitwise negation
** exponentiation
<<
>>
&
|
&&
||
notice the '++' of the screenshot.
it's writen of var++ not $var++
using double brackets
[[ expression ]]
the double bracket command provides advanced features for string comparisons---pattern matching.
Considering the case command:
case variable in
pattern1 | pattern2) command1;;
pattern3) command2;;
*) default commands;;
esac
The for command:
The while command:
The until command: