Eu tenho dois servidores Linux (Debian). Estou criando um script de shell.
No primeiro, crio uma matriz assim:
#!/bin/bash
target_array=(
"/home/user/direct/filename -p123 -r"
)
Isso funciona bem. Mas quando eu executo isso no outro servidor, recebo:
Syntax error: "(" unexpected
Tanto quanto posso dizer, os dois servidores são iguais. Alguém pode esclarecer por que isso não funciona?
Se eu digitar diretamente no terminal, tudo bem?
Parece que quando eu o executo como
sh scriptname.sh
Eu recebo o erro, mas se eu executá-lo como
./scriptname.sh
parece estar bem. Qual é a diferença?
sh
não é bash
e assim por executá-lo como sh scriptname.sh
está errado
cat -v <script>
ver se há caracteres espúrios.