update post: 为单一命令设置代理环境变量的终端函数
This commit is contained in:
parent
e0f41295db
commit
8e75de2275
|
@ -33,11 +33,27 @@ function proxyenv {
|
||||||
HTTPS_PROXY=${proxy_dest}
|
HTTPS_PROXY=${proxy_dest}
|
||||||
|
|
||||||
export proxy http_proxy https_proxy PROXY HTTP_RPOXY HTTPS_PROXY
|
export proxy http_proxy https_proxy PROXY HTTP_RPOXY HTTPS_PROXY
|
||||||
eval "$@"
|
"$@"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> Update: 注意最后一条命令现在是 `"$@"` 而不是以前的 `eval "$@"`,这样才能够避免括号产生额外的意义。
|
||||||
|
>
|
||||||
|
> 在 Bash 下使用 `help eval` 可以看到 `eval` 的作用,其会将所有作为参数的字符串合并为一个,然后直接传递给 shell 运行,所以这些字符串会再一次经过变量代换、命令行代换、引号移除等**展开**过程。
|
||||||
|
>
|
||||||
|
> ```
|
||||||
|
> $ help eval
|
||||||
|
> eval: eval [arg ...]
|
||||||
|
> Execute arguments as a shell command.
|
||||||
|
>
|
||||||
|
> Combine ARGs into a single string, use the result as input to the shell,
|
||||||
|
> and execute the resulting commands.
|
||||||
|
>
|
||||||
|
> Exit Status:
|
||||||
|
> Returns exit status of command or success if command is null.
|
||||||
|
> ```
|
||||||
|
|
||||||
### 针对 sudo 命令
|
### 针对 sudo 命令
|
||||||
|
|
||||||
在使用 `sudo` 命令时,它的默认行为是不保留任何当前 shell 下的环境变量,因此即便使用 `proxyenv sudo wget` 命令,也无法在 `wget` 中使用这些环境变量。一个临时的解决方案是使用 `sudo` 的 `--preserve-env` 参数,像下面这样
|
在使用 `sudo` 命令时,它的默认行为是不保留任何当前 shell 下的环境变量,因此即便使用 `proxyenv sudo wget` 命令,也无法在 `wget` 中使用这些环境变量。一个临时的解决方案是使用 `sudo` 的 `--preserve-env` 参数,像下面这样
|
||||||
|
|
Loading…
Reference in a new issue