我有一个编译 .bashrc 文件的脚本。它测试某些命令是否可用。它生成如下变量:
command -v cheat 2>&1 >/dev/null
HAS_CHEAT=$?
command -v git 2>&1 >/dev/null
HAS_GIT=$?
Run Code Online (Sandbox Code Playgroud)
如果设置了这些变量,脚本中的其他文件将执行或不执行某些操作。
我遇到的问题是,加载 .bashrc 后,我的环境被这些变量污染了。我不想unset手动处理每个变量。想知道是否有更好的方法来做到这一点。
给变量一个唯一的前缀(如HAS_上面的“”),然后在最后运行:
unset "${!HAS_@}"
Run Code Online (Sandbox Code Playgroud)
这种形式的间接扩展(使用!和@)给出名称以指定前缀开头的变量列表。
注意:我认为这不适用于 bash 以外的任何 shell。
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |