背景
对于shell脚本中,我们经常会面临着这样的一个问题,就是我们需要读取一个文件中的数据,然后根据文件中的数据,做一些操作,例如,我们有些时候需要往数据库里面插入一些数据,而这些数据就存在文件中,对于我们之前,我们比较麻烦的做法就是,把数据库里面里面的一些数据,我们自己拼装成sql语句,然后把每一条语句拿到数据库里面执行,这样既麻烦,有感觉效率极低,作为一个程序员,我们最为重要的事情就是提高自己的效率。
准备工作
对于我们要从文件中读取数据,我们首先要准备一个文件,这个文件里面存着我们要读取的数据,我们首先准备一个文件
/Users/oumiyako/WOrk/testFile/test.txt
hello world!
欢迎来到shell编程第一讲
/Users/oumiyako/WOrk/testFile/person.txt
1,'张三',13
2,'李四',23
简单的读取文件(方法一)
以文件中的每一行的数据,进行一个读取操作
method1.sh
!/bin/bash
echo "执行语句开始"
cat /Users/oumiyako/Work/testFile/test.txt | while read line
do
echo ${line}
done
执行操作,得出结果
./method1.sh
简单的读取文件(方法二)
读取文件中的每一行数据,并写入到mysql中
method2.sh
#!/bin/bash
echo "执行语句开始"
#第二种读取文件的方式
while read line
do
mysql -h127.0.0.1 -uroot -proot -P3306 -D test -e "insert into person values(${line})"
done < /Users/oumiyako/WOrk/testFile/person.txt
echo "执行语句完成"
备注
mysql命令行参数
mysql [-u name [-p]] [-h computername] [-protocol=name] [-P n] [-default-character-set=name][databasename]
-u name 等效于 --user=name
-p (小写) 如果所登录的用户需要密码,那么这个选项mysql命令会提示你输入密码
-h computername 等效于 --host=computername MySQL服务器的地址,如果省略则默认连接到本地计算机
-P(大写) n等效于 -port=n mysql与MySQL服务器连接所使用的端口号,默认为3306
-N, –skip-column-names 不输出列名