Я пытаюсь написать следующую задачу.
У меня есть файл, в котором обновляются имя узла и ips, я должен сделать каждый файл из тех узлов, которых нет в нашем требуемом каталоге, и которые находятся в обновленном файле, а также редактировать их имя.
Я должен дать ввод снизу вверх средствами от последней строки вверх, и мой сценарий будет выполняться снизу вверх в соответствии с моими потребностями, то есть теми записями, которые отсутствуют в моем требуемом каталоге.
Я использую условие if else и должен поставить цикл для выполнения моей задачи, пока он не сравняется.
Мой сценарий
#!/bin/bash
set -x
giosdir=$(find /usr/local/example-dir -maxdepth 1 -type f | wc -l)
lbdir=$(more /root/scripts/servers/new/example.txt |wc -l)
count=$(($lbdir-$giosdir))
lait2=1
l2=$(awk '{print $3}' < /root/scripts/servers/new/example.txt | tail -$lait2)
lait=1
newip=$(awk '{print $1}' < /root/scripts/servers/new/example.txt | tail -$lait)
if [ $nagiosdir -eq $lbdir ] ; then
echo " Nothing to do "
else
if [ $giosdir -lt $lbdir ] ; then
for((i=0;i<count;i++));do
{
cd /usr/local/
cp example-Node-2.txt $l2.txt
sed -i 's/10.10.0.1/'$newip'/' $l2.txt
sed -i 's/examole-Node-2.txt/'$l2'/' $l2.txt
echo " Node is added successfull"
lait2++;
lait++;
}
fi
fi
Я получаю эту ошибку:
line 43: syntax error near unexpected token `fi'
line 43: ` fi '
Описание моего сценария
- Первая строка принимает данные из каталога, сколько там файлов.
- Эта строка принимает данные из файла, сколько там строк
- вычитая числа и значение будет целым числом
- объявление значения переменной, которая используется в следующей строке
- эта строка берет входные данные из файла и вырезает 3-й столбец, в котором сохраняются имена узлов
- также переменная
- принимая ip как вход из файла
- если условие
Каков синтаксис для цикла for
?