bash shell脚本如何读取文件

时间:2019-11-20 08:53:03  来源:igfitidea点击:

问题

在linux shell中如何逐行读取文本文件?

假设我们的文本文件是:

name1,email1,addr1
name2,email2,addr2
name3,email3,addr3

对于每一行,需要执行下面的shell命令:

/path/to/send $name3 $email3 --text=

解决方案

可以将while循环 和read命令和内部字段分隔符(IFS)一起使用,如下所示:

#!/bin/bash
input=/path/to/data.txt
[ $# -eq 0 ] && { echo "Usage: ##代码## arg1"; exit 1; }
arg=""
cmd=/path/to/send
while read -r line
do
	IFS=, read -r f1 f2 f3 f4 f5 <<<"$line"
	$cmd $f1 $f2 --text="$arg"
done <"$input"