Mam dwa serwery (Debian) Linux. Tworzę skrypt powłoki.
Na pierwszym tworzę tablicę w ten sposób:
#!/bin/bash
target_array=(
"/home/user/direct/filename -p123 -r"
)
To działa dobrze. Ale kiedy uruchomię to na innym serwerze, otrzymuję:
Syntax error: "(" unexpected
O ile mogę stwierdzić, oba serwery są takie same. Czy ktoś może rzucić nieco światła na to, dlaczego to nie działa?
Jeśli wpiszę go bezpośrednio do terminala, to w porządku?
Wygląda na to, że kiedy uruchomię to jako
sh scriptname.sh
Pojawia się błąd, ale jeśli uruchomię go jako
./scriptname.sh
wydaje się być w porządku. Co za różnica?
sh
nie bash
działa i działa tak, jak sh scriptname.sh
jest źle
cat -v <script>
sprawdzić, czy nie ma fałszywego char.