回答
在bash
中,您可以使用typeset
(或其同義詞declare
)刪除導出屬性。
$ export foo=3
$ bash -c 'echo $foo'
3
$ typeset +x foo
$ bash -c 'echo $foo'
$
(同樣的命令zsh
和ksh
作品,你可以在任何bash
或zsh
使用declare
,但不ksh
,並且它可能是更常見的看到它在實踐中使用。)
由於據我所知,沒有辦法刪除POSIX shell中的export屬性。 (dash
是一個shell不提供作爲declare
這種擴展的一個突出的例子。)你將需要保存在臨時值的值,未設置原,然後重置原始:
$ export foo=3
$ tmp=$foo
$ unset foo
$ foo=$tmp
$ echo "$foo"
3
$ sh -c 'echo $foo'
$
(dash
,至少明確說明刪除導出屬性的唯一方法是取消它。)
我從來沒有見過'排版'在我的生活中。請建議實際使用的替代方案IRL;) –
我最初使用'declare',但切換到'typeset'來簡化三個「主要」炮彈的討論。 'ksh'不支持'declare'。 – chepner
那有道理。但它仍然感覺錯誤。 –
- 1. crontab的ENVIROMENTAL變量
- 2. 導出變量?
- 3. 路徑中呼籲的ENVIROMENTAL可變
- 4. 取消設置變量
- 5. 取消設置組變量
- 6. 環境變量導致做出的取消定義失敗(Windows)中
- 7. 在shell中導出變量
- 8. 單行導出PowerShell變量
- 9. requirejs導出全局變量
- 10. CloudFormation如何導出變量
- 11. 導出SPSS變量標籤
- 12. Node.Js導出變量問題
- 13. 導出變量從模塊
- 14. Clojure:重新導出變量
- 15. bash忘記導出變量
- 16. java導出變量輸出爲csv
- 17. 導出變量產品後出口
- 18. 找不到ENVIROMENTAL參數
- 19. g ++:如何取消導出的符號
- 20. 取消設置變量,但不會取消設置
- 21. 取消設置變量vs設置爲'
- 22. PHP $ _SESSION變量不會取消設置
- 23. 在awk中取消引用變量
- 24. 取消設置局部變量
- 25. 取消引用使變量內聯
- 26. 變量是取消定義 - 反應JS
- 27. 取消定義變量錯誤
- 28. 如何取消設置多個變量?
- 29. SQL查詢和取消變量
- 30. 取消定義的變量錯誤
Bash參考手冊條目[export](http://www.gnu.org/software/bash/manual/bashref .html#index-export) –
哪個shell?據我所知,你不能在POSIX shell中做到這一點。 – chepner
即時消息不工作POSIX外殼 – Darlyn