i=$(cat /etc/icinga/devices.d/xlcdw/full)
if IP in grep -q $i /etc/icinga/devices.d/xlcdw/xlcdw-endpoints.cfg;
echo "Already configured"
else
echo $IP
fi
Я пытаюсь увидеть, присутствуют ли хосты, которые я уже настроил в файле .cfg, в файле с именем 'full'. Конечно, приведенный выше код даже не запускается. Я ищу их IP-адреса.
решение1
Я беру ваши фрагменты информации из комментариев:
файл "full" - один IP-адрес на строку. Файл .cfg содержит все виды алфавитного текста в дополнение к IP-адресам.
и
Мне нужно выполнить итерацию по «полному» файлу, чтобы увидеть, присутствуют ли IP-адреса внутри него (по одному на строку) также в файле .cfg
Итак, вы хотите повторить, чего ваш сценарий не делает.
Попробуйте использовать цикл for:
for IP in $(cat /etc/icinga/devices.d/xlcdw/full); do
if [[ `grep -c $IP /etc/icinga/devices.d/xlcdw/xlcdw-endpoints.cfg` > 0 ]]; then
echo $IP already configured
else
echo $IP missing
fi
done
Адаптируйте это к вашим потребностям (которые я не совсем понимаю)