mapfile
mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array],从标准输入中读取行到索引数组变量array(未指定array则默认值为变量MAPFILE),或者如果提供-u选项则从文件描述符fd中读取行。-d选项,delim的第一个字符用于终止每个输入行,而不是换行。如果delim是空字符串,mapfile将在读取空字符时终止行。-n选项,最多复制count行,如果count为0,则复制所有行。-O选项,从array索引origin处开始赋值,默认为0。-s选项,丢弃读入的前count行。-t选项,从读取的每一行中删除尾随的delim字符,默认为换行符。-u选项,从文件描述符fd中读取行。-C选项,每读取-c选项指定的quantum行后,执行一次callback。-c选项,指定调用callback的间隔行数quantum,默认为5000。在执行回调函数时,提供要分配的下一个数组元素的索引以及要作为附加参数分配给该元素的行。callback在读取行之后和分配数组元素之前执行。如果没有指定origin,则mapfile将在赋值之前清空array。除非提供了无效的选项或选项参数、array无效或不可分配,或者array不是索引数组,否则返回0。
readarray
mapfile别名
printf
printf [-v var] format [arguments],将arguments按format格式化后写到标准输出。-v选项,会将输出写入var指定的名称的变量中。格式化字符串format包含三种类型的对象:普通的字符、转义字符序列、格式说明符。除了前导的正负号以外,非字符串格式说明符的arguments被视为C语言常量,如果前导符号是单引号或双引号,则该值是以下字符的ASCII值。在复用format格式化arguments时,如果format需要的参数多于提供的参数,多出的格式说明符会被赋值为0或空字符串。
支持的转义字符:
转义字符 | 说明 | 转义字符 | 说明 |
\" | 双引号 | \n | 换行符 |
\' | 单引号 | \r | 回车符 |
\\ | 反斜杠 | \t | 水平制表符 |
\a | 警告响铃 | \v | 垂直制表符 |
\b | 回退键 | \NNN | 八位字符,NNN为0到3位八进制数字 |
\c | 终止后面字符的输出 | \xHH | 八位字符,HH为1到2位十六进制数字 |
\e | 忽略下一个字符 | \uHHHH | Unicode (ISO/IEC 10646)字符,HHHH为1到4位十六进制数字 |
\f | 换页符 | \uHHHHHHHH | Unicode (ISO/IEC 10646)字符,HHHH为1到8位十六进制数字 |