linux - 使用函数的代理身份验证

标签 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”以查看环境变量。 谁能指出我的愚蠢。

最佳答案

不要执行脚本,而是获取它。 执行 将在子 shell 中发生,这会阻止您看到本应由脚本引起的副作用。

通过以下语句调用脚本:

source /path/to/script

. /path/to/script

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

关于linux - 使用函数的代理身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616137/

相关文章:

mysql - 运行 SQL 脚本出现语法错误

linux - 系统更新后SDDM被破坏

node.js - nginx tcp SYN 数据包未收到 ACK

linux - 在 Linux 中生成的 PDF 在 Windows 中无法打开 - 使用 enscript

c - 从参数使用 Execvp 到 ls

linux - 在不知道 AWK 中确切位置的情况下替换缺失值

python - 在 Raspberry Pi 1B 上安装 Pillow 失败 "gcc: fatal error: Killed signal terminated program cc1"

linux - 以root身份在/etc/profile.d/at Startup中执行脚本?

javascript - 需要帮助设置 ruby​​ on rails javascript 运行时环境

linux - 发送邮件时主机名查找失败