diff --git a/scripts/link.sh b/scripts/link.sh
index d87464b..e1276f1 100755
--- a/scripts/link.sh
+++ b/scripts/link.sh
@@ -1,4 +1,5 @@
 #! /bin/bash
+
 controller=`hostname`
 switches=`ifconfig -a | grep sw |grep -v eth | awk '{print $1}'`
 
@@ -17,24 +18,28 @@
 src_port=$2
 cmd=$3
 
+#sudo ovs-ofctl show sw02.01 | grep addr > link.in
+#cat link.in | awk -v p=$src_port 'BEGIN {pat="^ "p"\("}
+#$0 ~ pat {w=match ($0, /\(.*\)/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'
+#exit
+
 for s in $switches; do
     dpid=`sudo ovs-ofctl  show  $s |grep dpid | awk '{print $4}'`
     if [  "x$dpid" == "x$src_dpid" ]; then
-        intfs=`sudo ovs-ofctl show $s |grep addr | awk '{print $1}' | sed 's/.*(//g' | sed 's/):$//g'`
-	intf_list=()
-	for i in $intfs; do
-	  intf_list+=($i)
-        done
-	intf=${intf_list[$src_port]}
-        if [ x$cmd == "xup" ]; then
-	    echo "sudo ifconfig ${intf}  up"
-	    sudo ifconfig ${intf}  up
-        elif [ x$cmd == "xdown" ]; then
-	    echo "sudo ifconfig ${intf}  down"
-	    sudo ifconfig ${intf}  down
-        else
-	    echo "sudo ifconfig ${intf}"
-	    sudo ifconfig ${intf} 
+        intf=`sudo ovs-ofctl show $s |grep addr | awk -v p=$src_port 'BEGIN {pat="^ "p"\("}
+	$0 ~ pat {w=match ($0, /\(.*\)/); if (w) print substr($0, RSTART+1, RLENGTH-2)}'`
+	if [ x$intf != "x" ]; then
+	        if [ x$cmd == "xup" ]; then
+		    echo "sudo ifconfig ${intf}  up"
+		    sudo ifconfig ${intf}  up
+       		elif [ x$cmd == "xdown" ]; then
+		    echo "sudo ifconfig ${intf}  down"
+		    sudo ifconfig ${intf}  down
+	        else
+		    echo "sudo ifconfig ${intf}"
+		    sudo ifconfig ${intf} 
+		fi
+		break
         fi
     fi
 done
