Попробуйте вот так.
static_ip=$( cat $CCD_DIR | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep -E '(^|\s)10.8.0.45($|\s)' )
ip_destination=$( cat $CCD_DIR | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | grep -E '(^|\s)10.10.0.45($|\s)' )
Итак, сначала вы подбираете все IP адреса в файле, а затем ищете именно то, что вам нужно
Отредактировано после вашего комментария.
Если я правильно понимаю, "ifconfig-pu sh" - это только один одноранговый файл ccd? так что вы можете использовать это:
static_ip=$( grep -w "ifconfig-push" | awk -F ' ' {'print $2'})
Для остальных в "pu sh route" вам нужно использовать l oop, чтобы найти все соответствующие IP-адреса и поместить их в iptables.
if [ -f $CCD_DIR/$common_name ]
then
cat $CCD_DIR | awk -F 'route' {'print $2'} | awk -F ' ' {'print $1'} | sed '/^$/d' | grep -E "\b(10)\.(8)\.(0)\.|(10)\.(10)\.(0).\b" | while read ip_destination
do
sudo iptables -A FORWARD -s $static_ip -d ip_destination -j ACCEPT
done
fi