如何在 Linux 上运行命令前临时清空 Bash 环境变量

来源:互联网 发布:linux开机自启脚本 编辑:程序博客网 时间:2024/04/27 23:37

转载说明:总结成一句,就是在执行命令之前加 env -i


我是个 bash shell 用户。我想临时清空 bash shell 环境变量。但我不想删除或者 unset 一个输出的环境变量。我怎样才能在 bash 或 ksh shell 的临时环境中运行程序呢?

你可以在 Linux 或类 Unix 系统中使用 env 命令设置并打印环境。env 命令可以按命令行指定的变量来修改环境,之后再执行程序。

如何显示当前环境?

打开终端应用程序并输入下面的其中一个命令:

  1. printenv

  1. env

输出样例:

Fig.01: Unix/Linux: 列出所有环境变量

Fig.01: Unix/Linux: 列出所有环境变量

统计环境变量数目

输入下面的命令:

  1. env | wc -l
  2. printenv | wc -l # 或者

输出样例:

  1. 20

在干净的 bash/ksh/zsh 环境中运行程序

语法如下所示:

  1. env -i your-program-name-here arg1 arg2 ...

例如,要在不使用 http_proxy 和/或任何其它环境变量的情况下运行 wget 程序。临时清除所有 bash/ksh/zsh 环境变量并运行 wget 程序:

  1. env -i /usr/local/bin/wget www.cyberciti.biz
  2. env -i wget www.cyberciti.biz # 或者

这当你想忽视任何已经设置的环境变量来运行命令时非常有用。我每天都会多次使用这个命令,以便忽视 http_proxy 和其它我设置的环境变量。

例子:使用 http_proxy

  1. $ wget www.cyberciti.biz
  2. --2015-08-03 23:20:23-- http://www.cyberciti.biz/
  3. Connecting to 10.12.249.194:3128... connected.
  4. Proxy request sent, awaiting response... 200 OK
  5. Length: unspecified [text/html]
  6. Saving to: 'index.html'
  7. index.html [ <=> ] 36.17K 87.0KB/s in 0.4s
  8. 2015-08-03 23:20:24 (87.0 KB/s) - 'index.html' saved [37041]

例子:忽视 http_proxy

  1. $ env -i /usr/local/bin/wget www.cyberciti.biz
  2. --2015-08-03 23:25:17-- http://www.cyberciti.biz/
  3. Resolving www.cyberciti.biz... 74.86.144.194
  4. Connecting to www.cyberciti.biz|74.86.144.194|:80... connected.
  5. HTTP request sent, awaiting response... 200 OK
  6. Length: unspecified [text/html]
  7. Saving to: 'index.html.1'
  8. index.html.1 [ <=> ] 36.17K 115KB/s in 0.3s
  9. 2015-08-03 23:25:18 (115 KB/s) - 'index.html.1' saved [37041]

-i 选项使 env 命令完全忽视它继承的环境。但是,它并不会阻止你的命令(例如 wget 或 curl)设置新的变量。同时,也要注意运行 bash/ksh shell 的副作用:

  1. env -i env | wc -l ## 空的 ##
  2. # 现在运行 bash ##
  3. env -i bash
  4. ## bash 设置了新的环境变量 ##
  5. env | wc -l

例子:设置一个环境变量

语法如下:

  1. env var=value /path/to/command arg1 arg2 ...
  2. ## 或 ##
  3. var=value /path/to/command arg1 arg2 ...

例如设置 http_proxy:

  1. env http_proxy="http://USER:PASSWORD@server1.cyberciti.biz:3128/" /usr/local/bin/wget www.cyberciti.biz

via: http://www.cyberciti.biz/faq/linux-unix-temporarily-clearing-environment-variables-command/

作者:Vivek Gite 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:https://linux.cn/article-5980-1.html
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 辐射4开锁太快怎么办 极度恐慌3没子弹怎么办 辐射3道德值低怎么办 辐射3任务做完了怎么办 极限竞速6闪退怎么办 两个睾丸都碎了怎么办 快递退回去了钱怎么办 想登录老公微信怎么办 养狗家里味道大怎么办 实在不想养狗了怎么办 培训完不想干了怎么办 干了几天想离职怎么办 药流开始流血了怎么办 药流期间同房了怎么办 想学韩语可是没基础怎么办 鞋子多买了一双怎么办 胳膊抻着了怎么办妙招 胳膊抻筋了 很疼怎么办 干活胳膊抻筋了怎么办 胳膊上的筋扭了怎么办 一岁宝宝脖子歪怎么办 3岁宝宝轻微斜颈怎么办 2岁宝宝轻微斜颈怎么办 肩膀劳损痛的厉害怎么办 颈后面有个囊肿怎么办 扭腰了怎么办有偏方吗 跑步机点加油了怎么办 高二了英语30分怎么办 苍蝇往人身上飞怎么办 25岁了写字好丑怎么办 我字写得超难看怎么办 高三体检有纹身怎么办 快高考了有纹身怎么办 艺考身上有纹身怎么办 初三考试考砸了怎么办 考差了我该怎么办 发票认购簿丢了怎么办 税率开错为17%了怎么办 增值税票开错了怎么办 发票名字写错了怎么办 红米2卡开机画面怎么办