Linux Shell脚本-分隔符问题

工作中写shell脚本时遇到读取文件并按分隔符解析每行数据,分隔符单独一行,导致通过地址参数登录数据库报错,需要将分隔符写入循环条件中。

分隔符单独一行:

复制代码
#!/bin/bash

ora_data()
{
	# 设置分隔符
	IFS='|'
	
	# 读取文件中的每一行
	# 读取客户号变更文件并创建临时表导入 clientno.txt文件格式:序号|新客户号|旧客户号
	while read -r field1 field2 field3
	do
		# 打印读取的字段
		# echo $field1,$field2,$field3
		# 拼接sql语句写到 clientno_import.sql文件中
		echo "insert into clientnotmp values ('"$field1"','"$field2"','"$field3"');" >> clientno_import.sql
	done < clientno.txt
	
	${_DATASOURCE_CONN_} <<-! 
	select * from tbsysinfo;
	exit
	!
}

_DATASOURCE_CONN_="sqlplus -s ifm60/abc_123@10.22.2.2:1521/orcl"
ora_data

报错信息:

dbmovegznsyh@oracle test\]$ sh 1.sh 1.sh:行18: sqlplus -s ifm60/abc_123@10.22.2.2:1521/orcl: 没有那个文件或目录

将分隔符放至循环语句中:

复制代码
#!/bin/bash

ora_data()
{
	# 设置分隔符
	# 读取文件中的每一行
	# 读取客户号变更文件并创建临时表导入 clientno.txt文件格式:序号|新客户号|旧客户号
	while IFS='|' read -r field1 field2 field3
	do
		# 打印读取的字段
		# echo $field1,$field2,$field3
		# 拼接sql语句写到 clientno_import.sql文件中
		echo "insert into clientnotmp values ('"$field1"','"$field2"','"$field3"');" >> clientno_import.sql
	done < clientno.txt
	
	${_DATASOURCE_CONN_} <<-! 
	select * from tbsysinfo;
	exit
	!
}

_DATASOURCE_CONN_="sqlplus -s ifm60/abc_123@10.22.2.2:1521/orcl"
ora_data

执行结果:

dbmovegznsyh@oracle test\]$ sh 2.sh P BANK_NO HOST_CHECK_DATE P DAYEND S INIT_DATE - -------------------------------- --------------- - ------ - ---------- B 000 20200101 0 0 0 0 0 000 20200101 0 0 0 0 1 000 20200101 0 0 0 0 8 000 20200101 0 0 0 0

相关推荐
大聪明-PLUS8 分钟前
通过 Telnet 实现自动化
linux·嵌入式·arm·smarc
Lin_Aries_042111 分钟前
容器化 Tomcat 应用程序
java·linux·运维·docker·容器·tomcat
HAORChain43 分钟前
Fabric 2.x 外部链码部署(External Chaincode Service)实战攻略
linux·docker·区块链·fabric
Lin_Aries_04211 小时前
部署 GitLab 服务器
linux·运维·服务器·docker·gitlab·github
Dream_Ji1 小时前
Swift入门(二 - 基本运算符)
服务器·ssh·swift
appdeveloperxg1 小时前
Centos 7 创建ftp 匿名登录和专用用户名登录可上传下载
linux·服务器
停走的风2 小时前
关于Pycharm的conda虚拟环境包更改路径问题的配置问题
linux·pycharm·conda
早睡冠军候选人2 小时前
K8s学习----节点(Node)
运维·学习·云原生·容器·kubernetes
学习同学2 小时前
从0到1制作一个go语言游戏服务器(二)web服务搭建
服务器·前端·golang
-KamMinG3 小时前
分享:一键自动化巡检服务器
服务器·chrome·自动化