從標(biāo)準(zhǔn)輸入讀取行并賦值到數(shù)組。
mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
-d delim 將delim設(shè)為行分隔符,代替默認(rèn)的換行符。
-n count 從標(biāo)準(zhǔn)輸入中獲取最多count行,如果count為零那么獲取全部。
-O origin 從數(shù)組下標(biāo)為origin的位置開始賦值,默認(rèn)的下標(biāo)為0。
-s count 跳過對前count行的讀取。
-t 讀取時(shí)移除行分隔符delim(默認(rèn)為換行符)。
-u fd 從文件描述符fd中讀取。
-C callback 每當(dāng)讀取了quantum行時(shí),調(diào)用callback語句。
-c quantum 設(shè)定讀取的行數(shù)為quantum。
如果使用-C時(shí)沒有同時(shí)使用-c指定quantum的值,那么quantum默認(rèn)為5000。
當(dāng)callback語句執(zhí)行時(shí),將數(shù)組下一個(gè)要賦值的下標(biāo)以及讀取的行作為額外的參數(shù)傳遞給callback語句。
如果使用-O時(shí)沒有提供起始位置,那么mapfile會在實(shí)際賦值之前清空該數(shù)組。
array(可選):用于輸出的數(shù)組名稱。如果沒有指定數(shù)組名稱,那么會默認(rèn)寫入到變量名為MAPFILE的數(shù)組中。
返回成功除非使用了非法選項(xiàng)、指定的數(shù)組是只讀的、指定的數(shù)組不是下標(biāo)數(shù)組。
# 常見的讀取形式。
mapfile < source_file target_array
cat source_file |mapfile target_array
mapfile -u fd target_array
# 只讀取前5行。
mapfile < source_file -n 5 target_array
# 跳過前5行。
mapfile < source_file -s 5 target_array
# 在數(shù)組指定的下標(biāo)開始賦值。
# 請注意:這樣做不會清空該數(shù)組。
mapfile < source_file -O 2 target_array
# 讀取時(shí)設(shè)定行分隔符為tab。
# 注意,第二行的tab在終端需要用ctrl+v tab輸入;
mapfile < source_file -d