1. 程式人生 > >方便理解Linux輸入輸出重定向的例子

方便理解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 檔案