A resposta curta é que você não pode. É por isso que a primeira linha (que deve ter um #
inicial, que teria aparecido se você tivesse escrito o texto como código) permite especificar o shell para o qual ele é relevante. Em particular, csh
é muito diferente de Bourne (sh), Korn (ksh) e Bourne-again (bash).
No entanto, sh / ksh / bash tem sintaxe semelhante para recursos comuns, portanto, sh
scripts devem ser executados em ksh / bash. dash
parece ser equivalente a Bourne, mas as matrizes são uma extensão bash / ksh não presente em sh / dash.
Altere sua primeira linha para #!/bin/bash
e você não terá problemas.
Há muitas informações de compatibilidade no link , com uma lista detalhada das diferenças.