Adicione a linha: set -u
ao topo do seu código. Em seguida, execute novamente e veja o que você obtém.
O erro que a variável i_
está desvinculada, ou seja, não definida em lugar algum. Agora, por que o bash está falando sobre essa variável i_
? Você não definiu em nenhum lugar. Observe atentamente sua instrução de eco: "hello_$i_$j"
do sublinhado depois que o $ i estiver sendo visto como a variável i_
, pois _
é um caractere de identificador de nome de variável válido.
Portanto, para evitar que o bash faça isso, você precisa colocar o nome da variável entre chaves {}
, como asecho "Hello_${i}_${j}"
, as chaves impedem que o nome da variável se transmita ao _
. Nota: as chaves na variável $j
são opcionais, pois o "
serve ao propósito de delimitar.