Bash 中字符串的定义是什么?
Bash 在其文档中的多个位置使用术语“字符串”,例如记录=~
用于正则表达式匹配的运算符:
还可以使用附加二元运算符 =~,其优先级与 == 和 != 相同。当使用它时,细绳运算符右侧被视为 POSIX 扩展正则表达式并进行相应匹配(如 regex(3) 中)。
在本节中DEFINITIONS
,我没有看到任何字符串的定义:
DEFINITIONS
The following definitions are used throughout the rest of this document.
blank A space or tab.
word A sequence of characters considered as a single unit by the shell. Also known as a token.
name A word consisting only of alphanumeric characters and underscores, and beginning with an alphabetic character or an underscore. Also referred to as an identifier.
metacharacter
A character that, when unquoted, separates words. One of the following:
| & ; ( ) < > space tab newline
control operator
A token that performs a control function. It is one of the following symbols:
|| & && ; ;; ;& ;;& ( ) | |& <newline>
那么,Bash 中的字符串到底是什么?它们可以在IFS
环境变量中包含空格或字符吗?
注意:我知道字符串通常被定义为字母表中的一系列符号。
答案1
Bash 手册没有定义字符串,但是它确实这么说
它旨在成为 IEEE POSIX 规范(IEEE 标准 1003.1)的 IEEE POSIX Shell 和工具部分的一致实现。
所以我们可以假设字符串的 POSIX 定义适用:
由第一个空字节终止并包含第一个空字节的连续字节序列。