У меня есть два (Debian) сервера Linux. Я создаю сценарий оболочки.
На первом я создаю массив таким образом:
#!/bin/bash
target_array=(
"/home/user/direct/filename -p123 -r"
)
Это отлично работает. Но когда я запускаю это на другом сервере, я получаю:
Syntax error: "(" unexpected
Насколько я могу судить, оба сервера одинаковы. Может кто-нибудь пролить свет на то, почему это не работает?
Если я ввожу это непосредственно в терминал, это нормально ??
Казалось бы, когда я запускаю его как
sh scriptname.sh
Я получаю сообщение об ошибке, но если я запускаю его как
./scriptname.sh
кажется, все в порядке. Какая разница?
sh
не bash
так и так работает, как sh scriptname.sh
не правильно
cat -v <script>
увидеть, есть ли ложный символ.