根据定义,IFS 是 shell 内置变量、环境变量还是其他变量?

根据定义,IFS 是 shell 内置变量、环境变量还是其他变量?

在 Bourne shell 及其衍生版本中,

根据定义,IFS 是 shell 内置变量、环境变量还是其他变量?
(这个程序模块在文献中通常是如何分类的?)

答案1

据该消息来源称, 2. Shell命令语言:

2.5.3 Shell 变量

变量应从环境中初始化(如 XBD 环境变量和 POSIX.1-2017 系统接口卷中的 exec 函数所定义),并且可以使用变量赋值命令为其赋予新值。如果变量是从环境中初始化的,则应立即将其标记为导出;请参阅导出专用内置。可以使用变量赋值、使用 read 或 getopts 实用程序、使用 for 循环中的 name 参数、使用 ${ name= word} 扩展或使用作为实现扩展提供的其他机制来定义和初始化新变量。

具体来说IFS

IFS 被视为字符列表的字符串,用于字段拆分、*特殊参数的扩展以及使用读取实用程序将行拆分为字段。如果 的值包含不构成有效字符一部分的任何字节,则字段分割、 扩展以及实用程序的使用的IFS结果是未指定的。*read

如果IFS未设置,则对于未设置的变量,它的行为应与正常情况一样,除了 shell 的字段分割和实用read程序的行分割应按照 的值执行时IFS一样 <space> <tab> <newline>;请参阅字段拆分。

shell 应在调用时设置IFS为。<space> <tab> <newline>

相关内容