在从事软件开发的过程中,经常会涉及到在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. 全局变量&局部变量

    一.局部变量: 定义在函数内部的变量以及函数的形参成为局部变量 作用于:从定义那一行开始知道与其所在的代码块结束 生命周期:从程序运行到定义那一行开始分配存储空间到程序离开该变量所在的作用域 特点: ...

  2. OSGI.NET 学习笔记--架构篇

    关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1.  UIOSP 开放工厂框架架构 开放工厂所有插件基于OSGi.NET面向服 ...

  3. awk中怎么比较字符串??

    awk -vOFS="_" '{print $1,$2,$3} http://bbs.chinaunix.net/thread-1099655-1-1.html

  4. flask-admin

    初始化 class Admin(app=None, name=None, url=None, subdomain=None, index_view=None, translations_path=No ...

  5. Oracle笔记 八、PL/SQL跳转/判断/循环语句块

    --goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 d ...

  6. Razor视图引擎 语法

  7. leetcode 118

    118. Pascal's Triangle Given numRows, generate the first numRows of Pascal's triangle. For example, ...

  8. Android IOS WebRTC 音视频开发总结(三八)-- tx help

    本文主要介绍帮一个程序员解决webrtc疑问的过程,文章来自博客园RTC.Blacker,支持原创,转载请说明出处(www.rtc.help) 这篇文章内容主要来自邮件,为什么我会特别整理到随笔里面来 ...

  9. 手机连上wifi热点后自动弹窗的功能

    使用buildroot编译bind DNS服务器 用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以直接添加到文件系统里边,如常 ...

  10. .NET中的属性

    1.What?什么是属性       属性是对字段的封装.当类中有了一个字段以后,为了控制这个字段对外的一些表现(例如可访问性,是只读?只写?或者对自读赋值做一些必要的验证等等)我们把这个字段私有化( ...