【发布时间】:2014-02-26 09:22:40
【问题描述】:
我遇到的情况是,有大约 10 - 30 个环境变量与特定应用程序有关。在重新配置和重新编译应用程序之前,我想删除(即取消设置)所有相关的环境变量。该列表太烦人了,无法明确输入,所以我想要一些自动化。
我查看了Unset group of variables,但它似乎不是我想要的。
我想出了下面的命令,它显示了我原则上想要做的事情(取消设置名称中带有“G4”的所有环境变量 - 实际上它并不完美,如果它有“G4”,它将取消设置值)。
printenv |grep G4 |awk 'BEGIN{FS="=";}{system("unset "$1);}'
正如我所料,这不会影响父 shell,这是我想要的行为。我以前遇到过这种情况,在那些情况下我使用了“源”,但我不太明白如何在这里做到这一点。将上述命令放在 shell 脚本中然后获取它似乎是行不通的。
我知道我可以首先找出设置这些变量的原因,然后将其删除并打开另一个 shell,但我不认为这是一个解决方案(尽管在回答这个问题时我可能会这样做) .我也不想一个一个地取消它们,这很烦人,而且似乎没有必要。
【问题讨论】:
-
你贴的链接是php的,当然不是你想要的:)
标签: linux shell environment-variables