EXPR Syntax | Bash Equiv | Meaning |
---|---|---|
SEE NOTE 1 | "${ARG1:-$ARG2}" | ARG1 if it is neither null nor 0, otherwise ARG2 |
ARG1 & ARG2 | $(( ARG1 & ARG2 )) | ARG1 if neither argument is null or 0, otherwise 0 |
ARG1 < ARG2 | $(( ARG1 < ARG2 )) | ARG1 is less than ARG2 |
ARG1 <= ARG2 | $(( ARG1 <= ARG2 )) | ARG1 is less than or equal to ARG2 |
ARG1 = ARG2 | $(( ARG1 == ARG2 )) | ARG1 is equal to ARG2 |
ARG1 != ARG2 | $(( ARG1 != ARG2 )) | ARG1 is unequal to ARG2 |
ARG1 >= ARG2 | $(( ARG1 >= ARG2 )) | ARG1 is greater than or equal to ARG2 |
ARG1 > ARG2 | $(( ARG1 > ARG2 )) | ARG1 is greater than ARG2 |
ARG1 + ARG2 | $(( ARG1 + ARG2 )) | arithmetic sum of ARG1 and ARG2 |
ARG1 - ARG2 | $(( ARG1 - ARG2 )) | arithmetic difference of ARG1 and ARG2 |
ARG1 * ARG2 | $(( ARG1 * ARG2 )) | arithmetic product of ARG1 and ARG2 |
ARG1 / ARG2 | $(( ARG1 / ARG2 )) | arithmetic quotient of ARG1 divided by ARG2 |
ARG1 % ARG2 | $(( ARG1 % ARG2 )) | arithmetic remainder of ARG1 divided by ARG2 |
STRING : REGEXP | [[ $STRING =~ $REGEX ]] | anchored pattern match of REGEXP in STRING |
match STRING REGEXP | [[ $STRING =~ $REGEX ]] | same as STRING : REGEXP |
substr STRING POS LENGTH | ${STRING:$POS:$LEN} | substring of STRING, POS counted from 1 (Note bash pos counts from 0) |
index STRING CHARS | No simple equiv, but the string can be slpit and the remainder counted. | index in STRING where any CHARS is found, or 0 |
length STRING | "${#STRING}" | length of STRING |
#NAME? | Not needed | interpret TOKEN as a string, even if it is a keyword like 'match' or an operator like '/' |
( EXPRESSION ) | ( EXPRESSION ) | value of EXPRESSION |
NOTE1 :- ARG1 | ARG2
is too hard to embed in a markdown table.