Bash 3.0, не поддерживающий списки?

Последняя команда, которую Вы могли выполнить, когда Вы полностью сделаны с полем, dd if=/dev/zero of=/dev/sdX bs=1M (причем sdX является Вашим корневым диском). Это полностью вытрет весь диск. Важно, чтобы это было последней командой, которую Вы выполняете, как тогда, когда команда завершается, у Вас будет очень несчастное поле, и ничто не будет работать.

3
12.02.2013, 01:28
1 ответ

+= оператор появился в версии 3.1 Bash.

  • В более старых версиях, если массив не является разреженным, можно или присвоить элементу после последнего элемента массива:

    NODES[${#NODES[@]}]="$WAS_IP"
    

    При добавлении новых значений в одном определенном месте можно использовать отдельную переменную счетчика:

    NODES=()
    NODES_length=0
    NODES[NODES_length++]="$WAS_IP"
    

    Но это просто умеренно быстрее, чем выяснение у длины массива с ${#NODES[@]}.

  • Или можно присвоить целый массив существующим элементам и новому:

    NODES=("${NODES[@]}" "$WAS_IP")
    

    Само собой разумеется, лучше избегайте этого последнего. Если массив был первоначально разреженным, индексы массива изменятся после того присвоения.

5
27.01.2020, 21:17

Теги

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