Похоже, что отсутствует сценарий ./configure, определяющий, есть ли у вас компилятор описания записи "tic". Предполагая, что он действительно отсутствует на машине, вам следует установить его и снова запустить сборку. Вы не сказали, на каком дистрибутиве вы это пытаетесь. Если это Fedora, вам следует установить «tic» с помощью «dnf install -y ncurses» (или «yum install -y ncurses» в более ранних дистрибутивах Fedora). Вы также можете загрузить исходники и сборку ncurses, а затем снова запустить сборку.
Рами Розен
Я не думаю, что вы хотите передать одинарные кавычки в gtar
. В такой команде, как somecmd 'foo bar' 'files*.log'
, оболочка обработает кавычки, они говорят ей не обрабатывать специальные символы специально, и передаст somecmd
аргументы foo bar
и files*.log
. Программы Unix получают командную строку не как одну строку, а как несколько строк аргументов, именно оболочка выполняет разбиение командной строки на строки.
Если вы хотите прочитать
несколько значений в Bash, вы можете использовать read -a array
, а затем передать массив команде.
-a array assign the words read to sequential indices of the array
variable ARRAY, starting at zero
т.е.
read -a filenames
gtar "${filenames[@]}"
Индексирование массива с помощью [@]
(в кавычках) раскрывает члены массива как отдельные слова, что вам и нужно.
Кроме того, у вас есть for file in ${GTAR[*]}
. Это похоже на обращение к GTAR
как к массиву, но это не так, вы просто присвоили ему вывод команды gtar
в виде строки. В этом случае ${GTAR[*]}
- это то же самое, что $GTAR
. Поскольку расширение не заключено в кавычки, строка в этот момент подвергается разбиению на слова, которое по умолчанию разбивается на пробельные символы. Но после этого слова также воспринимаются как глобусы имен файлов и расширяются до подходящих имен файлов.
Пока ваши имена файлов не содержат пробелов или глобальных символов (*?[]
), все в порядке. Но в целом, это не то, что вы хотите делать.
Для правильных массивов, вероятно, всегда нужно использовать "${array[@]}"
вместо [*]
.
См: Разделение слов, Почему мой сценарий оболочки подавляется пробелами или другими специальными символами? и Массивы