我可以为单个命令设置 zsh 选项(如 Extendedglob)吗?就像是:
setopt extendedglob param="${foo%%[0-9]##}"
Run Code Online (Sandbox Code Playgroud)
使用上面使用的命令,我相信包含在()不会是一个解决方案,因为分配param会丢失,所以我排除它作为解决方案。我也不想通过预先设置选项然后取消设置来潜在地破坏环境(在已经设置然后将取消设置的情况下)。
小智 5
它可以结合localoptions和匿名函数来完成。
local param=\'\' foo=\'foo123\'\n() {\n setopt localoptions extendedglob\n param="${foo%%[0-9]##}"\n}\necho $param $options[extendedglob] ;# \xe2\x87\x92 foo off\nRun Code Online (Sandbox Code Playgroud)\n\n如果我们不能在某些版本的 zsh 中使用匿名函数,我们可以给它一些一次性的名称。
\n| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |