Та ошибка происходит любое время, Вы пытаетесь использовать строку, где число ожидалось.
Например,
$((input.txt))
заставит ту же ошибку быть распечатанной.
В Вашем случае оказывается, что Вы присваивали массиву, который использует числовой индекс.
jw013 справедливо объясняет, что необходимо сделать declare -A
(верхний регистр A), чтобы Ваш пример работал.
Причина, почему:
При присвоении элементу массива Вы обычно писали бы
array[0]=foo
array[1]=bar
но можно также записать любое арифметическое выражение как ключ, например.
array[0+0]=foo
array[1+0]=bar
таким образом, оболочка видит
array[input.txt]=input.txt
попытка преобразовать его в число как
$((input.txt))
и сбой.
Причина точка сбивает с толку и это аргументы без точки, кажется, работает, это
$((input))
на самом деле верный номер.
bash
видит input
, решает, что это - допустимое имя переменной, видит, что переменная сброшена и заменяет его 0
.
Сравните это с input.txt
, который не является допустимым именем переменной, потому что имена переменной не могут содержать точки!
Для предотвращения этого запутывающего поведения можно использовать
set -u
затем любое время, Вы пытаетесь использовать переменную, которая не существует, Вы получите ошибку, например.
set -u
artifacts[arg1]=arg1
печатает ошибку
scriptname: line number: arg1: unbound variable
Для установки GUI на Сервере Ubuntu просто нажмите Ctrl+Alt+T на клавиатуре для открытия Terminal. Когда это откроется, выполните команду (команды) ниже:
sudo apt-get update && sudo apt-get upgrade
При выполнении сделайте:
sudo apt-get install --no-install-recommends ubuntu-desktop
Эта команда установит Рабочий стол Ubuntu без всего настольного дополнения и других вещей, которые идут с Ubuntu Desktop Edition.
Когда сделанный, просто перезагрузка, и Вы сделаны.
Другая опция, которую Вы можете иметь:
Для XFCE
sudo apt-get update
sudo apt-get install xubuntu-desktop
Для KDE
sudo apt-get update
sudo apt-get install kubuntu-desktop
Для LXDE
sudo apt-get update
sudo apt-get install lxde
После того, как Вы устанавливаете предпочтительный GUI, возобновляете установку Oracle 11gR2. Вы можете проверить здесь на полные инструкции, для 12,10, но должны работать на 13,04
Можно также установить Oracle через командную строку (также известный, как 'запускают', автоматическая или тихая установка). См. https://dba.stackexchange.com/questions/42926/how-to-automate-oracle-db-installation-like-a-hands-free-install для деталей.
Обратите внимание, что только для версии Экспресса RPMs доступны. Standard Edition только доступно с помощью двух zip-файлов. Специальная версия содержит меньше функций и имеет больше ограничений, например, она не содержит встроенный препроцессор SQL Pro*C.