diff --git a/recover.sh b/recover.sh
index f32071fa79100b014a5f4b2bd6f9549bf271b19f..64f7fb7b0e7b5b6780de2d4c85db638f52aa95b4 100644
--- a/recover.sh
+++ b/recover.sh
@@ -1,3 +1,7 @@
+function env_set() {
+    sed -i -e "/^export $2=.*/d" ~/.bashrc
+    echo "export $2=`readlink -e $1`" >> ~/.bashrc
+}
 
 [ -z ${STUID} ]   && echo "STUID must be set (RTFM)"   && exit
 [ -z ${STUNAME} ] && echo "STUNAME must be set (RTFM)" && exit
@@ -25,5 +29,10 @@ git checkout hustpa/pa4
 git checkout -b pa4  hustpa/pa4
 git checkout hustpa/pa5
 git checkout -b pa5  hustpa/pa5
+echo "set ENV ..."
+env_set nemu NEMU_HOME
+env_set nexus-am AM_HOME
+env_set navy-apps NAVY_HOME
+source ~/.bashrc
 echo "done!"
 
diff --git a/setup.sh b/setup.sh
index 0004f3dd37293d9088e82e9e414090ac22cd8ae6..b2647762ea0b23e3ec2a18b5fc9d6b26a64dfc23 100644
--- a/setup.sh
+++ b/setup.sh
@@ -1,3 +1,7 @@
+function env_set() {
+    sed -i -e "/^export $2=.*/d" ~/.bashrc
+    echo "export $2=`readlink -e $1`" >> ~/.bashrc
+}
 
 [ -z ${STUID} ]   && echo "STUID must be set (RTFM)"   && exit
 [ -z ${STUNAME} ] && echo "STUNAME must be set (RTFM)" && exit
@@ -24,5 +28,9 @@ git branch -u hustpa/pa2 pa2
 git branch -u hustpa/pa3 pa3
 git branch -u hustpa/pa4 pa4
 git branch -u hustpa/pa5 pa5
+echo "set ENV ..."
+env_set nemu NEMU_HOME
+env_set nexus-am AM_HOME
+env_set navy-apps NAVY_HOME
+source ~/.bashrc
 echo "done!"
-