我有一个变量
pathname="xxx"
我已使用
将其设置为环境变量export pathname="xxx"
如何“反转”它并使变量不导出?
答案 0 :(得分:1)
在bash
中,您可以使用typeset
(或其同义词declare
)来删除导出属性。
$ export foo=3
$ bash -c 'echo $foo'
3
$ typeset +x foo
$ bash -c 'echo $foo'
$
(同一命令适用于zsh
和ksh
。您可以在declare
或bash
中使用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()
,至少明确说明删除导出属性的唯一方法是取消设置。)