背景
在研究 shell 参数$-
、 for sh
、bash
和 时zsh
,我发现它返回当前选项标志,乙型肝炎病毒,对于两者sh
并且bash
但是569X为了zsh
。
SUSE >> bash -c 'echo "$0"; echo "$-"'
bash
hBc
SUSE >> sh -c 'echo "$0"; echo "$-"'
sh
hBc
SUSE >> zsh -c 'echo "$0"; echo "$-"'
zsh
569X
问题
我曾经man zsh
查找过有关的信息569X但什么也没发现。有人可以解释为什么“$-”返回569X为了zsh
?
答案1
$-
可以通过查找每个字符对应的单字符选项来理解:
-5
使 Zsh 立即报告后台作业的状态;-6
导致 Zsh 以较低优先级运行所有后台作业;-9
当完成不明确时,使 Zsh 自动列出选择;-X
使 Zsh 在列出要完成的文件时显示文件类型。
看选项的描述在 Zsh 手册中。以上四个选项是默认启用的四个非初始化选项,可以通过单字符选项进行控制。