使用函数进行代理验证

时间:2013-09-04 14:09:23

标签: linux archlinux

我按照arch wiki article创建了一个包含以下函数的shell脚本文件:

#!/bin/bash
function proxy(){
     echo -n "username:"
     read -e username
     echo -n "password:"
     read -es password
     export http_proxy="http://$username:$password@proxyserver:8080/"
     export https_proxy=$http_proxy
     export ftp_proxy=$http_proxy
     export rsync_proxy=$http_proxy
     export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
     echo -e "\nProxy environment variable set."
 }
 function proxyoff(){
     unset HTTP_PROXY
     unset http_proxy
     unset HTTPS_PROXY
     unset https_proxy
     unset FTP_PROXY
     unset ftp_proxy
     unset RSYNC_PROXY
     unset rsync_proxy
     echo -e "\nProxy environment variable removed."
 } 
case "$1" in
     'proxyon')
              proxyon
              ;;
     'proxyoff')
              proxyoff
              ;;
     *)# default execute
              proxyon
esac

执行时(作为root用户和用户)我按照上面的脚本的要求输入了用户名密码,但是我无法看到别名被设置!!我打印'printenv'来查看环境变量。 任何人都可以指出我的愚蠢。

1 个答案:

答案 0 :(得分:1)

不要执行脚本, source 执行将发生在子shell中,这就是阻止您查看应该由脚本引起的副作用的原因。

通过说:

来调用脚本
source /path/to/script

. /path/to/script

(注意.与上一行中的路径之间的空格)