command line - bash expression type - Ask Ubuntu
what difference between bash expression type? trying answer question how increment variable in bash, seems ways same. wonder if of them backward compatibility?
here's way found can increment variable. work in bash expression type follows replacing expression 1 of these (except last one).
var=var+1 var=$((var+1)) var=$((var))+1 var=${var}+1 var=$var+1 var+=1 ++var var++
let
expression((
expression))
$((
expression))
`
expression`
seams start new bash environment, inheriting current one, not affect , not support ++var
, var++
. if invoke so: `((
expression)); echo $var`
so basically, $((
expression))
seems able others can do, last 1 (`
expression`
). affect local environment.
((expression)) expression evaluated according rules described below under arithmetic evaluation. if value of expres‐ sion non-zero, return status 0; otherwise return status 1. equivalent let "expression". [[ expression ]] return status of 0 or 1 depending on evaluation of conditional expression expression. expressions composed of primaries described below under conditional expressions. word splitting , pathname expansion not performed on words between [[ , ]]; tilde expansion, parameter , variable expansion, arithmetic expansion, command substitution, process substitution, , quote removal performed. condi‐ tional operators such -f must unquoted recognized primaries.
this covers basics regarding bash expression types , bash man page. more arithmetic expressions see this.
sources:
man bash
http://www.softpanorama.org/scripting/shellorama/arithmetic_expressions.shtml
Comments
Post a Comment