未经报道的环境变量

时间:2015-10-28 15:51:42

标签: shell unix

我有一个变量

pathname="xxx"

我已使用

将其设置为环境变量
export pathname="xxx"

如何“反转”它并使变量不导出?

1 个答案:

答案 0 :(得分:1)

bash中,您可以使用typeset(或其同义词declare)来删除导出属性。

$ export foo=3
$ bash -c 'echo $foo'
3
$ typeset +x foo
$ bash -c 'echo $foo'

$

(同一命令适用于zshksh。您可以在declarebash中使用zsh,但不能ksh使用dash ,在实践中使用它可能更常见。)

据我所知,没有办法删除POSIX shell中的export属性。 (declare是shell的一个突出示例,它不提供$ export foo=3 $ tmp=$foo $ unset foo $ foo=$tmp $ echo "$foo" 3 $ sh -c 'echo $foo' $ 等扩展名。)您需要将值保存在临时值中,取消设置原始值,然后重置原始值: / p>

dash

.replace(),至少明确说明删除导出属性的唯一方法是取消设置。)