在从事软件开发的过程中,经常会涉及到在Linux下将数据库脚本文件从sh格式变为sql格式的问题。本文以一个实际的脚本文件为例,说明格式转换的过程。

       1. sh文件内容

本文中的文件名为example.sh,其内容如下:

#!/bin/bash

function Init()

{

if [ -f"example.sql" ]

then

echo"example.sql is exits and is deleting it,then recreate it"

rm -fexample.sql

else

echo"example.sql no exits and is creating it"

fi

echo " usezxdbp_166 ">>example.sql

echo " go">>example.sql

}

function CreateTable()

{

cat>>example.sql<< EOF

create table tb_employeeinfo

(

employeeno        varchar(20)      not null,      -- 员工工号

employeename    varchar(20)      not null,      -- 员工姓名

employeeage       int                          null       -- 员工年龄

);

create unique index idx1_tb_employeeinfo ontb_employeeinfo(employeeno);

create index idx2_tb_employeeinfo ontb_employeeinfo(employeename);

print 'create table tb_employeeinfo ok'

go

EOF

}

## Execute function

Init

CreateTable

说明:

(1)  本文件用于创建tb_employeeinfo表,生成的脚本文件名为example.sql。

(2)  Init函数用于在屏幕上输出信息,CreateTable函数用于创建数据表。

(3)  在sh文件的结尾,要按顺序将本文件所包含的所有函数罗列出来,如本文件包括的函数是Init和CreateTable。

        2. 生成sql文件的过程

        (1)  上传sh文件

使用FTP工具(如filezilla)将example.sh文件上传到Linux的对应目录下。

        (2)  使用dos2unix命令修改文件格式

由于example.sh文件是在本地的Windows操作系统下编写的,因此要先转换为Linux下的格式才能使用。如果上传后直接使用,会出现“Permissiondenied”的报错信息。

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的。其使用的格式为:dos2unix file,如果一次转换多个文件,把这些文件名直接跟在dos2unix之后(dos2unixfile1 file2 file3 …)。

在这里,命令执行如下:

zhou@linux:~/sql> dos2unix example.sh

dos2unix: converting file example.sh to UNIX format ...

        (3)  使用chmod命令修改文件的权限

在执行了dos2unix命令之后,还是不能立马生成文件,还需要修改文件的权限。

chmod命令是Linux系统中最常用到的命令之一,用于改变文件或目录的访问权限。若想了解有关该命令的更多信息,请上网查询。

在这里,命令为:chmod 777 example.sh

        (4)  生成sql文件

直接运行带后缀的sh文件名,即可生成sql文件。命令如下:

zhou@linux:~/sql> example.sh

example.sql no exits and is creating it

表示example.sql文件之前不存在,这是第一次生成。

再次执行命令:

zhou@linux:~/sql> example.sh

example.sql is exits and is deleting it,then recreate it

表示example.sql文件已经存在了,现在删除后重新生成。

        3. sql文件内容

生成的sql文件名为example.sql,文件内容如下:

use zxdbp_166

go

create table tb_employeeinfo

(

employeeno         varchar(20)      not null,      -- 员工工号

employeename    varchar(20)      not null,      -- 员工姓名

employeeage       int                           null       -- 员工年龄

Linux下如何将数据库脚本文件从sh格式变为sql格式的更多相关文章

  1. Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式

    问题描述: 在Windows系统下面使用文本编辑器notepad后传到Linux系统下的话 Linux下处理和执行一般都存在一些问题,我们可以通过命令查看文件是否是dos格式的, 如果有如图所示的M标 ...

  2. Linux下修改MySQL数据库数据文件路径

    使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysq ...

  3. windows下数据库文件使用脚本同步到linux下的mysql数据库中

    1.背景 windows server 2008 下 每天会有 *.sql数据文件 需要上传到linux 中的mysql数据库中 而运维人员是在 windows server 下使用 xshell 连 ...

  4. Linux在什么样的从脚本文件数据库sh格式改变sql格式

    在软件开发过程中,经常参与Linux从下一个脚本文件数据库sh格式改变sql格式问题.在本文中,一个实际的脚本文件,例如.描述格式转换过程.        1. sh文件内容 本文中的文件名称为exa ...

  5. Linux下用到数据库sqlite3

    最近在Linux下用到数据库sqlite3,于是开始了该方面的学习. 0. 引言 我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 包括创建数据库.创建 ...

  6. Linux下实现mysql数据库每天自动备份

    Linux下实现mysql数据库每天自动备份 1.基本操作步骤 a.创建备份目录 mkdir -m 777 /home/wwwroot/backup b.创建备份脚本sh vim /home/wwwr ...

  7. Linux下的文件结构,及对应文件夹的作用

    Linux下的文件结构,及对应文件夹的作用 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比 ...

  8. linux下搭建mysql数据库

    linux下搭建mysql数据库 1.下载mysql: http://dev.mysql.com/downloads/mysql/5.6.html#downloads wget http://dev. ...

  9. [转]Linux下的lds链接脚本详解

    转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml     一. 概论 每一个链接过程都由链接脚本(lin ...

随机推荐

  1. Android开发-API指南-Content Provider基础

    Content Provider Basics 英文原文:http://developer.android.com/guide/topics/providers/content-provider-ba ...

  2. 【PL/SQL练习】显式游标

    cursor --------需要用户先定义,在select时,可以用于处理多行记录 1.declare  声明一个游标 2.open cursor (隐式游标自动open) 3.fetch curs ...

  3. windows 服务的启动与安装

    在使用windows 操作系统时,我们对windows服务再也熟悉不过了,这些服务有的是系统层的,有的是应用层的,大部分都是运行在桌面的后台,可以在进程中看到,有时候在做web项目时,在站点启动时要启 ...

  4. 数据结构(一)之HelloWord

    最近由于学习上面的需要,要重新的看看数据结构方面的知识!当然,我觉得数据结构也非常的重要,下面是我的学习的一点小小的记录,以备日后的查看! 我的环境: 1:操作系统:windows7 2:编码环境:M ...

  5. phpinfo中查不到memcache信息问题

    已经安装了php的memcache扩展,可是怎么都不能通过phpinfo查询到,实际使用时提示扩展未安装.为什么呢?百般寻求解决方法,才发现主要有以下两点原因: 1.使用的php和安装扩展的php不是 ...

  6. java中HashMap的用法

    重点介绍HashMap.首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.在下文中会 ...

  7. cordova ios --->OC 调用 js (一)

    1.在HTML中定义一个函数如OCcallJS() function OCcallJS(){ alert("OC 调用js 的 方法"); } 2.当webview 加载完成的时候 ...

  8. Ax Lookup Form

    Reference: Class\sysLookupTable 1. 用临时表构造Lookup下拉结果,sysLookupTable有一个parmTmpBuffer方法,表明传入展示的结果集是临时表 ...

  9. Java语法细节(2)

    1.逻辑运算符 &和&&,|和||的区别 &&:和&的结果是一样的,但运算过程有区别 &&:只要左边结果为假,就不再执行右边的,结果为假 ...

  10. JavaScript字符串转日期格式

    var dependedVal="2005-3-4"; //根据日期字符串转换成日期 var regEx = new RegExp("\\-","gi ...