чтобы цикл выполнил итерации через некоторый файл энного положения

HTTrack (домашняя страница) может зеркально отразить сайты для офлайнового просмотра с довольно мелкомодульные опции относительно того, что загрузить и что нет. Это также может возобновить прерванные загрузки.

3
12.11.2014, 01:19
2 ответа

вот два способа циклы на основе массива:

#!/bin/bash
array=( "CTL_MLPOSDTLP1_1.ctl" "CTL_MLPOSDTLP1_2.ctl" "CTL_MLPOSDTLP1_3.ctl" )

echo Loop 1
for x in "${array[@]}"
do
    echo "$x"
done

echo Loop 2
for ((x=0; x<${#array[@]}; x++));
do
    echo "${array[x]}"
done

петли по выбору выбранных элементов

Эта скрипта позволяет Вы указываете в командной строке, какие элементы из массива съели для обработки:

#!/bin/bash
array=( "CTL_MLPOSDTLP1_1.ctl" "CTL_MLPOSDTLP1_2.ctl" "CTL_MLPOSDTLP1_3.ctl" )

for x in "$@"
do
    echo "${array[x]}"
done

Предположим, мы хотим, чтобы мы хотим, чтобы перейти на первые два и пропустить третий. (С Bash использует индексирование на основе нуля, первые два являются числом 0 и номер 1.) Использование:

$ bash script.sh 0 1
CTL_MLPOSDTLP1_1.ctl
CTL_MLPOSDTLP1_2.ctl

для запуска только третий:

$ bash s.sh 2
CTL_MLPOSDTLP1_3.ctl

, чтобы итерации из 0 к N-1

for ((x=0; x<n; x++));
do
    echo "${array[x]}"
done
2
27.01.2020, 21:27
sudo lvconvert --stripes 3 vg/lv /dev/sda1 /dev/sdb1 /dev/sdc1

Где 2 - количество полосок, затем логический том, затем 3 устройства для чередования. RAID 0 не имеет избыточности.

-121--114598-

Невозможно запустить скрипты (в отличие от двоичных) с разрешением SUID. Сценарий выполняется, но как пользователь, а не как root, поэтому его iptables вызовы не работают.

Сообщения об ошибках из cron-заданий поступают на локальную электронную почту. Убедитесь, что локальная электронная почта настроена правильно (некоторые дистрибутивы не делают этого по умолчанию).

Простое решение (поскольку у вас есть доступ root) состоит в установке этого скрипта в crontab пользователя root или, в качестве альтернативы, в /etc/crontab с помощью строки:

* * * * * root /root/test.sh
-121--217700-
#!bin/bash
n=2
array=( "CTL_MLPOSDTLP1_1.ctl" "CTL_MLPOSDTLP1_2.ctl" "CTL_MLPOSDTLP1_3.ctl" )
for ((x=0; x<=n-1; x++));
do
    echo "${array[x]}"
done

Спасибо @ john за помощь в редактировании и получили правильный вывод; он работает сейчас:)

0
27.01.2020, 21:27

Теги

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