Выполнение сценария оболочки с помощью `sh foo.sh` выдает `foo.sh: 1: Синтаксическая ошибка: "(" неожиданный` [дубликат]Linux

Anonymous
Выполнение сценария оболочки с помощью `sh foo.sh` выдает `foo.sh: 1: Синтаксическая ошибка: "(" неожиданный` [дубликат]

Сообщение Anonymous »

История
Когда я запускаю sh foo.sh, я получаю foo.sh: 1: Синтаксическая ошибка: "(" неожиданная

Код: Выделить всё

ARR=("apple" "banana" "cherry")

for i in ${ARR[@]};
do
echo $i
done

но когда я запускаю /bin/bash или /usr/bin/zsh`, я получаю ожидаемый результат;

Код: Выделить всё

/usr/bin/zsh foo.sh
ARR
apple
banana
cherry
Мои чеки

Echo

Код: Выделить всё

echo $SHELL
/usr/bin/zsh

[code]/etc/shells[/code]

мой /etc/shells следующий

Код: Выделить всё

# /etc/shells: valid login shells
/bin/sh
/usr/bin/zsh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dash
/bin/zsh
/usr/bin/tmux
Я озадачен тем, что здесь происходит. Насколько я понимаю, sh должен использовать определенную оболочку для машины.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ax-error-u

Вернуться в «Linux»