- Does it mean that an array is set if and only if the number of its elements is greater than zero?
Sim.
- Is the following array set, myarr=()?
Não.
- how does the definition of an array being set agree with the definition of a parameter being set?
Ambos são iguais, não vejo problema aqui:
-
Um parâmetro é definido se foi atribuído um valor. A string nula é um valor válido.
-
Uma variável de matriz é considerada definida se ... foi atribuído um valor. A string nula é um valor válido.
- There is a different definition ...
Qual é a resposta no link que descreve os detalhes de como o teste [ -n "${var+set}" ]
funciona, sem definir o que é definido ou não, não para variáveis normais, não para matrizes.
Por favor, note o that
em that would not report ...
.
- What is POSIX definition for a shell array being set?
Não há "matrizes de shell" no POSIX.