方便理解Linux輸入輸出重定向的例子
阿新 • • 發佈:2018-12-13
功能: 指令碼從電子表格輸出的.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 檔案