方便理解Linux输入输出重定向的例子

功能: 脚本从电子表格输出的.csv格式文件(数据以 ‘,’ 分隔)读取数据,生成标准的SQL语句,然后用数据库执行实现数据添加

#!/bin/bash
outfile='members.sql'
IFS=','
while read lname fname address city state zip
do
	cat >> $outfile << *
	INSERT INTO members (lname,fname,address,city,state,zip) VALUES (‘$lname’, '$fname', '$adderss', '$city', '$state', '$zip');
	*
done < $1
                         
                         --------------------《Linux Command Line and Shell Scripting Bible,3E》

说明:

脚本中出现了三次重定向

     第一次: done < $1  从命令行第一个参数获取数据文件名,重定向为循环读取数据的来源
     第二次和第三次: cat >> $outfile << *  ...  *    “*”引起来的部分是内联输入重定向,将内部的命令内联给
     cat命令,成为cat的输入数据,由于cat没有命令行参数,会将输入给他的数据重新输出,cat的输出重定向到了$outfile,
     所以规范后的SQL语句会直接输出到 members.sql 文件

猜你喜欢

转载自blog.csdn.net/qq_29089775/article/details/82957262