如何理解“echo $-”的输出?

dcn*_*h35 13 bash variable

如何理解输出echo $-?它看起来像某种标志字符。我无法通过谷歌搜索得到线索。

Ste*_*itt 17

它们代表 shell 标志的值;这是由 POSIX 定义的

-

(连字符。)扩展到当前选项标志(连接成字符串的单字母选项名称),如调用时指定的、由set特殊内置命令指定的或由 shell 隐式指定的。

岩组手动提到它简单:

- <S> 在调用时或由setorsetopt命令提供给 shell 的标志。

Bash 手册中的描述一样set

当前的一组选项可以在 中找到$-

要了解echo $-您需要查看 shell 手册中的选项的输出。例如,在击,echo $-输出himBHs对我来说,这意味着-h-m-B-H选项被允许(见help set的详细信息),该壳是交互(-i)和来自标准输入读(-s)。

  • @Andrew 它反映了`-c` 命令行选项;参见`bash -c 'echo $-'`。 (2认同)