我按照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'来查看环境变量。 任何人都可以指出我的愚蠢。
答案 0 :(得分:1)
不要执行脚本, source 。 执行将发生在子shell中,这就是阻止您查看应该由脚本引起的副作用的原因。
通过说:
来调用脚本source /path/to/script
或
. /path/to/script
(注意.
与上一行中的路径之间的空格)