在Unix中,$-有什么用途?在我的系统中,输出结果为:
$ echo $-
himBH
$
什么是himBH?它代表什么?
提前感谢...
它返回当前 shell 的标志。变量$-
包含当前在您的终端中活动的 shell 标志,这些标志确定 shell 如何为您运行。在您的情况下,这些标志具有以下含义(请注意所有这些都是默认值):
h:代表“hashall”(读作“hash all”),这告诉 bash 记住通过查询您的 PATH 找到的命令的位置。
i:代表“交互式”,这很好,因为这是我正在与之交互的 shell(输入和获得输出)!
m:代表“监控”,这使得 bash 支持作业控制(例如,您可以通过 bg 将作业发送到后台)。
B:代表“braceexpand”(读作“brace expand”),这允许您在 bash 中使用非常有效的花括号扩展2。
H:代表“histexpand”(读作“hist [history] expand”),这使您能够通过在其编号前加上感叹号3来重新运行来自历史记录的命令。
可以使用set
命令更改这些标志。例如:
set +H
echo $-
himB
去掉H
标志,而保留-
。
set -H
echo $-
himBH
恢复它。就是这样,有点混乱,但是+
会删除一个标记,而-
会添加一个标记。
更多信息: