ESTACK.ECLASS
章节: eclass-manpages (5)更新时间: 2024年11月
索引 返回主内容
名称
estack.eclass - 类栈值存储支持描述
支持在类栈变量上存储值。函数
- estack_push <栈> [要压入的项目]
- 将任意数量的项目压入指定的栈。选择一个有效的变量名(即坚持使用字母数字),并一次将任意数量的项目压入栈。
以下代码片段将依次输出 5、4、3 等。
estack_push mystack 1 2 3 4 5 while estack_pop mystack i ; do echo "${i}" done
- estack_pop <栈> [变量]
- 从指定的栈中弹出单个项目。如果指定了变量,则弹出的项目将存储在那里。如果没有更多可用项目,则返回 1,否则返回 0。有关更多信息,请参见 estack_push。
- evar_push <要保存的变量> [更多要保存的变量]
- 这允许您临时修改变量,然后恢复它(包括设置与未设置的语义)。目前不支持数组。
这适用于使用 `local` 不起作用的变量(例如导出的变量,或仅在函数中临时更改内容)。
例如
evar_push LC_ALL export LC_ALL=C ... do some stuff that needs LC_ALL=C set ... evar_pop # You can also save/restore more than one var at a time evar_push BUTTERFLY IN THE SKY ... do stuff with the vars ... evar_pop # This restores just one var, SKY ... do more stuff ... evar_pop 3 # This pops the remaining 3 vars
- evar_push_set <要保存的变量> [要存储的新值]
- 这是一个保存和临时设置变量的便捷快捷方式。如果未指定值,则该变量将被取消设置。
- evar_pop [要恢复的变量数量]
- 将变量恢复到与相应的 evar_push 调用一起保存的状态。有关更多详细信息,请参阅该函数。
- eshopts_push [传递给 `set` 或 `shopt` 的选项]
- 通常,代码需要启用 shell 选项来更改代码行为。由于更改 shell 选项很容易破坏其他代码段(这些代码段假设默认状态),因此 eshopts_push 用于 (1) 将当前 shell 选项压入栈,以及 (2) 将指定的参数传递给 set。
如果第一个参数是 '-s' 或 '-u',我们假设您希望调用 `shopt` 而不是 `set`,因为某些选项仅通过该方式可用。
一个常见的示例是禁用 shell 通配符扩展,以便可以对自定义函数的变量/参数使用特殊含义/处理。这将是
eshopts_push -o noglob for x in ${foo} ; do if ...some check... ; then eshopts_pop return 0 fi done eshopts_pop
- eshopts_pop
- 将 shell 选项恢复到与相应的 eshopts_push 调用一起保存的状态。有关更多详细信息,请参阅该函数。
- eumask_push <新的 umask>
- 将 umask 设置为指定的新值,同时将先前值保存到栈中。对于临时更改 umask 很有用。
- eumask_pop
- 恢复先前的 umask 状态。
维护者
[email protected]报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug。文件
estack.eclass参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/estack.eclass
索引
本手册由 man2html 使用手册页生成。
时间: 2024年11月12日 格林尼治标准时间03:27:01