“$-”在 ZSH 调用期间返回 569X

“$-”在 ZSH 调用期间返回 569X

背景

在研究 shell 参数$-、 for shbash和 时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 手册中。以上四个选项是默认启用的四个非初始化选项,可以通过单字符选项进行控制。

相关内容