У мене є два (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>
переконатися, чи є помилкові знаки.