#!/bin/bash source .env # load vars from .env file case "${1}" in search ) # load container ip in array IPs mapfile IPs < <( nmap 172.28.0.2-10 -sn | grep "ngx" | awk '{print substr($6, 2, length($6)-2)}') # using 'tr' for escape bug with \n in array elements echo "IPs=( $(echo ${IPs[@]} | tr '\n' ' '))" >> .env ;; block ) echo "knock -v ${IPs[$2]} $(echo ${CLOSE_PORT_SEQ} | sed 's/,//g')" knock -v ${IPs[$2]} $(echo ${CLOSE_PORT_SEQ} | sed 's/,//g') ;; open ) echo "knock -v ${IPs[$2]} $(echo ${OPEN_PORT_SEQ} | sed 's/,//g')" knock -v ${IPs[$2]} $(echo ${OPEN_PORT_SEQ} | sed 's/,//g') ;; list ) # print array IPs numb=0 # counter var for ip in "${IPs[@]}"; do echo "${numb}: ${ip}" # add index array element numb=$((${numb}+1)) done ;; esac