Bash
O operador vírgula é válido em bash ( LESS=+/'expr1 , expr2' man bash
):
expr1 , expr2
comma
E nenhuma outra explicação sobre seu uso.
Para isso, temos que ler a "Linguagem C" descrição (onde todos os operadores aritméticos nasceram) .
Exemplo (como no link acima) (o segundo dos quais tem o valor 5):
$ echo "$(( (t=3, t+2) )) $t"
5 3
Ou mais simples:
$ echo "$(( t=3, t+2 )) $t"
5 3
Sim, cada elemento separado por uma vírgula pode ser uma expressão :
1313 expression:
assignment-expression
expression , assignment-expression
POSIX
POSIX não não inclui um operador de vírgula:
Tabela : Operadores padrão ISO C selecionados e palavras-chave de fluxo de controle
Ou apenas tente:
$ dash -c 'echo $(( t=3,t+2 ))'
dash: 1: arithmetic expression: expecting EOF: " t=3,t+2 "
$ bash -c 'echo $(( t=3,t+2 ))'
5
Como a IBM confirma em sua página do shell AIX e POSIX (ênfase minha):
All of the integral operators, other than ..., and comma (,), are supported.
Mas, também no AIX, a IBM reivindica suporte para o operador de comma o shell ksh93 em /usr/bin/ksh93
More arithmetic operators are available, including the unary +, ++, --, and the ?: construct (for example, "x ? y : z"), as well as the , (comma) operator.
Conclusão:
dash, ksh do not have a comma operator.
ksh93 may have a comma operator.
bash, zsh do have a comma operator.