Rol*_*and 5 bash environment-variables
考虑以下代码:
#!/usr/bin/bash
t_export() {
declare dummy="Hello"
export dummy
echo dummy: $dummy
echo printenv dummy: $(printenv dummy)
}
t_export
echo dummy: $dummy
echo printenv dummy: $(printenv dummy)
Run Code Online (Sandbox Code Playgroud)
输出:
dummy: Hello
printenv dummy: Hello
dummy:
printenv dummy:
Run Code Online (Sandbox Code Playgroud)
你如何解释这一点?我认为环境始终是全局的,因此变量dummy在函数外部也是可见的。
export不将值复制到当前环境中。相反,它在name上设置导出属性。当启动新进程时,标记有该属性的任何变量(及其当前值)都会复制到新进程的环境中。
返回时t_export,变量dummy超出范围,这意味着它不再可导出到新进程。
| 归档时间: |
|
| 查看次数: |
2783 次 |
| 最近记录: |