我关注了 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”以查看环境变量。 谁能指出我的愚蠢。
最佳答案
不要执行脚本,而是获取它。 执行 将在子 shell 中发生,这会阻止您看到本应由脚本引起的副作用。
通过以下语句调用脚本:
source /path/to/script
或
. /path/to/script
(注意上一行中 .
和路径之间的空格)
关于linux - 使用函数的代理身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616137/