\amethyst 1249146190 learn The parameters of let undergo word splitting and globbing. This means that, e.g. let F=m*A or let a[i]++ can give completely unexpected results if there are files named "F=maxA" or "ai++" in the current directory, or if nullglob is set. ormaaj 1334102308 forget ormaaj 1334102384 learn Evaluates its arguments as arithmetic. The arithmetic compound command should almost always be preferred. http://wiki.bash-hackers.org/commands/builtin/let See: !(( ormaaj 1699533768 forget ormaaj 1699535643 learn let is a simple command that evaluates each argument as an arithmetic expression from left to right. It has no portability advantage over (()) by default, but the latter isn't shimmable. let's arguments can be used as an alternative to the comma operator in shells that lack support. let may be defined as: case $(command -v let) in let) ;; *) let () while ${2+\:} return "$(( ! (${1:-0}) ormaaj 1699540535 forget ormaaj 1699540552 learn let evaluates each argument as arithmetic expressions from left to right. You can pass multiple args as an alternative to the comma operator in shells that lack support. It may be defined as: case $(command -v let) in let) ;; *) let () while ${2+\:} return "$(( ! (${1:-0}) ))"; do shift; done; esac