bash не инициализируются масивы

Автор starlayt, 20 мая 2014, 14:55:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

starlayt

test=( 1 2 3 4 5 )
ругается на скобку, типа неожиданная

test[0]=1
test[1]=2
выводит значения каждого элемента и пишет not found

С другими способами такая же ***. В консоли работает, в скриптах - нет. Что за ****?!

*прочтите правила форума, пункт 3.1 , qupl
  •  

yura_n

Цитата: starlayt от 20 мая 2014, 14:55:40ругается на скобку, типа неожиданная
У вас пробелы лишние. После первой скобки и перед второй.
  •  

starlayt

без них он пишет тоже самое
  •  

yura_n

Цитата: starlayt от 20 мая 2014, 20:40:33без них он пишет тоже самое
У меня не пишет. Выложите скрипт целиком.
  •  

ZEN

Возможно старая версия bash или используется dash вместо bash...

zen@devel:~$ dash
$ a=( 1 2 3 )
dash: 1: Syntax error: "(" unexpected
$
zen@devel:~$ a=( 1 2 3 )
zen@devel:~$ echo ${a[0]}
1
zen@devel:~$
Crimea is Ukraine
  •  

starlayt

ZEN, у меня тоже в консоли работает. А именно в скрипте - нет.
yura_n, да вот хоть этот, из примера, не пашет.

test=(1 2 3)
echo ${test[0]}
  •  

ogost

вопрос глупый, но shabang добавили? то бишь #!/bin/bash в начало скрипта?

yura_n

Цитата: starlayt от 22 мая 2014, 08:03:21yura_n, да вот хоть этот, из примера, не пашет.
Все работает:

yura@Vega ~/test $ ls
test.sh
yura@Vega ~/test $ cat test.sh
#!/bin/bash
test=(1 2 3)
echo ${test[0]}

yura@Vega ~/test $ ./test.sh
1
  •  

starlayt

ogost, да, добавлен
yura_n, спасибо, я понял в чем ошибка!
alex@Alex:~$ ~/test.sh
1
alex@Alex:~$ sh ~/test.sh
/home/alex/test.sh: 2: /home/alex/test.sh: Syntax error: "(" unexpected

Вот оказывается в чем дело было. Как уже выше говорили, я оказывается dash вместо bash использовал.
  •