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 アドレスを grep で検索しています。
答え1
コメントからあなたの情報を抜粋します:
ファイル「full」には、1 行につき 1 つの IP アドレスが含まれます。.cfg ファイルには、IP アドレスに加えて、あらゆる種類のアルファベット テキストが含まれます。
そして
'full' ファイルを反復処理して、その中の IP (1 行に 1 つ) が .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
それをあなたのニーズに合わせて調整してください(私は完全に理解していません)