#! /bin/bash addrs="$(sudo exim -bp | fgrep -A1 '*** frozen ***' | sed -n '/ \{10\}/s/^ *//p' | sort -u)" while [ "$addrs" ]; do declare -a addrindex i=1 for addr in $addrs; do printf '%d) %s\n' "$i" "$addr" addrindex[$i]="$addr" i="$(($i + 1))" done max="$(($i - 1))" while :; do printf '#? ' read line if [ -z "$line" ]; then break 2 elif expr "$line" : '[0-9][0-9]*$' >/dev/null; then exim-kill "${addrindex[$line]}" addrs="$(echo "$addrs" | fgrep -vx -- "${addrindex[$line]}")" break elif expr "$line" : '[0-9]*-[0-9]*$' >/dev/null; then addrstart="${line%%-*}" addrend="${line#*-}" [ "$addrstart" ] || addrstart=1 [ "$addrend" ] || addrend="$max" i="$addrstart" tokill= while [ "$i" -le "$addrend" ]; do tokill="${tokill:+$tokill\\|}${addrindex[$i]}" addrs="$(echo "$addrs" | fgrep -vx -- "${addrindex[$i]}")" i="$(($i + 1))" done exim-kill "$tokill" break fi done done