Почему ln -s скопировал файл вместо того, чтобы связать его?

array_item= (item1 item2)

Не помещайте пробелы вокруг = в назначении, это не работает. Также это дает мне синтаксическую ошибку в скобках. Вы можете получить ошибку check_: command not found , если элементы массива не установлены или пусты.

for (( i=0; i<${array_item[@]}; i++ ))

$ {array_item [@]} расширяется до всех элементов массива. Думаю, вам нужно $ {# array_item [@]} для количества элементов. Если массив пуст, это также должно привести к ошибке, поскольку другой операнд сравнения будет отсутствовать.

Конструкция for ((...)) {cmds ...} , похоже, работает в Bash, но в руководстве описывается только обычный for ((...)); делать ... ; done конструкция.

Или просто используйте вместо x в "$ {array_item [@]}"; do ... done для перебора значений массива.

Если вам действительно нужны индексы во время цикла, может быть технически лучше перебрать "$ {! Array_item [@]}" , поскольку индексы на самом деле не обязательно должны быть смежными. Это также работает с ассоциативными массивами.

1
06.08.2016, 01:00
0 ответов

Теги

Похожие вопросы