Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: проблема с массивами в bash'е -Solved  (Прочитано 2235 раз)

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

Оффлайн Antihrist

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
проблема с массивами в bash'е -Solved
« : 08 Декабря 2007, 23:54:01 »
необходимо написать скрипт с ипользованием массива, например:
#!/bin/bash
bash --version
echo $TERM
declare -a Array1
declare -a Array2[3]
Array1[1]=2
Array2[2]=3
Array3[1]=4
echo ${Array2[2]}
но при запуске этого скрипта вылазят ошибки, вот полный вывод:
$ sh 1.sh
GNU bash, version 3.2.25(1)-release (i486-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
xterm
1.sh: 4: declare: not found
1.sh: 5: declare: not found
1.sh: 6: Array1[1]=2: not found
1.sh: 7: Array2[2]=3: not found
1.sh: 8: Array3[1]=4: not found
1.sh: 9: Syntax error: Bad substitution
При этом если самому вызвать консоль (gnome-terminal) и каждую строчку набрать/вставить то все работает:
$ bash --version
GNU bash, version 3.2.25(1)-release (i486-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$ echo $TERM
xterm
$ declare -a Array1
$ declare -a Array2[3]
$ Array1[1]=2
$ Array2[2]=3
$ Array3[1]=4
$ echo ${Array2[2]}
3
т.е эта проблема связана только с запуском скрипта из файла. Как это можно исправить?
« Последнее редактирование: 09 Декабря 2007, 10:26:05 от Antihrist »

Оффлайн Antihrist

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: проблема с массивами в bash'е -Solved
« Ответ #1 : 09 Декабря 2007, 10:25:49 »
разобрался, надо было просто запускать не
$ sh 1.sh
а
$ bash 1.sh

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.