here code:
v=0 var in "$@";do echo $var v+=1 echo $v done here command:
$ bash myscript.sh duck duck goose here output:
duck 01 duck 011 goose 0111 so appears (to me) treating variable v string or not integer. not sure why , feel simple issue overlooking 1 small detail.
is example of pitfalls of non-static typing?
thanks,
use math context perform math. bash-specific syntax (( )):
(( v += 1 )) # not posix compliant, not portable alternately, posix-compliant syntax math context $(( )):
v=$(( v + 1 )) # posix-compliant! ...or...
: $(( v += 1 )) # posix-compliant! there's non-posix-compliant let operation:
let v+=1 # not posix compliant, not portable, don't ...and non-posix-compliant declare -i:
declare -i v # not posix compliant, not portable, don't # ...also makes harder read or reuse snippets of code # ...by putting action , effect potentially further each other. v+=1
Comments
Post a Comment