下記では80ポートから255個目まで検索してどれも空いていなかったらエラーとします。
unset tmp_str s_port_num=80 flag_1="0" count="0" while [ 1 ]; do unset tmp_str nmap -p $s_port_num localhost | grep open > /dev/null if [ $? = 0 ]; then flag_2="0" else unset tmp_str tmp_str=`grep -x "$s_port_num" /tmp/servlist` if [ "$tmp_str" != "$s_port_num" ]; then break fi fi # カウンタを更新 count=`expr $count + 1` s_port_num=`expr $s_port_num + $count` if [ $count -ge 255 ]; then echo "ポート番号検出中にエラーが発生しました" exit 0 fi done echo $s_port_num