SHELL创建脚本工具

每次新建一个脚本的时候都,都要在脚本前面加上#!/bin/bash等一些固定格式的文本,这个bash脚本创建脚本可以自动添加解释器为bash、日期作者等一些信息。并且在创建完成后自动检查语法是否有错误,如果有错误它会帮你用vim打开,并且定位到出现语法问题的行。如果语法有错误,会强制不让你退出。要退出按ctrl+c键。给如果创建是的bash脚本文件,会给此文件加执行权限。

使用方法:在此脚本后面跟上你要创建的文件名,文件名要以.sh结尾,否则不会当作脚本文件。

#./create.sh  new_file.sh

#!/bin/bash
#
#
#
# 判断文件是否存在
Sh=$(echo $1 | grep -o  ‘.sh$‘)
#if ! [ "$#" -eq 1  ]
#then
#	echo ‘SYNOPSIS:./createfile.sh <FileName>‘
#	exit 
#fi
if  [ -a "$1" ]
then
	echo "file $1 is exists. pless input other filename"
	exit 1
elif [ -d "$1" ]
then
	echo "file $1 is directory. pless input other filename"
	exit 2
#创建脚本文件
elif [ ".sh" == "$Sh" ]
then
	cat << EOF >>$1
#!/bin/bash
#description:
#version:
#author: wukui
#license:GPL
EOF
Date=$(date +%F-%H:%M)
echo "#date:$Date"  >>$1
else
	touch $1
	exit
fi
# 判断是否为bash脚本类型文件,如果是则打开并定位到最后一行
if [ ‘shell‘ == `file $1 | cut -d‘ ‘ -f3` ]
then
	vim + $1
else
	exit
fi

#给脚本文件加执行权限
if [ ‘shell‘ == `file $1 | cut -d‘ ‘ -f3` ]
then
	if ! [ -x "$1" ]
	then
		echo "chmod +x $1"
		chmod u+x $1 &> /dev/null

	fi
fi
#检查语法,如果有问题,用vim打开并定位到出现问题的行
if [ ‘shell‘ == `file $1 | cut -d‘ ‘ -f3` ]
then
	if ! `bash -n $1`
	then
		touch aaaaaaaaaa
		bash -n $1 &> aaaaaaaaaa
		Line=$(cut -d: -f2 aaaaaaaaaa | cut -d‘ ‘ -f3 | sort -u)
		while [ -n "$Line"  ]
		do
				vim +$Line $1
				bash -n $1 &> aaaaaaaaaa
				Line=$(cut -d: -f2 aaaaaaaaaa | cut -d‘ ‘ -f3 | sort -u)
		done
	else
		echo "very good"
		exit
	fi
fi
rm -f aaaaaaaaaa

附件用windows记事本打开可能会不换行。这是因linux与windoows换行符不同造成的。

SHELL创建脚本工具

时间: 2024-10-02 03:54:30

SHELL创建脚本工具的相关文章

Oracle工具类-生成数据库现有Job的创建脚本

生成Oracle数据库现有Job的创建脚本 -- 生成现有Job的创建脚本 create or replace procedure proc_generate_job_create_sql is begin DBMS_OUTPUT.ENABLE(buffer_size => null); --表示输出buffer不受限制 sys.dbms_output.put_line('declare'); sys.dbms_output.put_line(' v_job number;'); sys.dbm

开始你的第一个npm脚本工具

在实际开发中,一般刚开始一个项目或者刚接手一个项目,我们会运行 npm install 下载安装所有依赖, 在实际开发中,可能也会使用各种命令行-- 来提高我们开发的效率. 与它相处了这么久,你真的了解 npm 这些东西吗? 本篇文章会分别介绍下面几个内容: package.json 解析命令行参数 丰富终端交互体验 发布 npm 包 实战--开发小程序脚手架 项目背景:每次新建小程序页面要生成四个文件名相同的文件 ( .wxml..wxss..json  和 .js ),并且要在 app.js

shell编程脚本语法

学习了两个月的Linux,记住了很多命令,知道了脚本的作用,也被脚本杀死了大概一半的脑细胞,现在脚本还不能熟练运用,感觉亏了.心疼我的脑细胞,痛恨脚本,但不得不说,脚本是一个好东西啊,用起来真的方便,但是写起来真的烧脑袋呦!下面来总结一下这周学习的脚本语法,哇,语法虽然不多也不难,但是结合起来熟练运用还有一定的难度,何况现在的脚本才几行,以后要写几行,心里没点数吗!废话少说,开始 跳过最基础的命令行堆积的脚本,总结一下让脚本更简洁实用的语法 首先,条件选择if语句登场 if语句用法:常见的单分支

【Telnet】使用Telnet协议连接到远程Shell执行脚本

介绍 本文介绍如何通过Telnet协议连接到远程Shell,执行脚本,并获取执行结果: 相关文章: <[Jsch]使用SSH协议连接到远程Shell执行脚本>http://www.cnblogs.com/ssslinppp/p/6244653.html 其他示例: http://commons.apache.org/proper/commons-net/examples/telnet/TelnetClientExample.java http://www.programcreek.com/ja

基于CentOS的Mysql学习补充二--使用Shell创建数据库

文章出处:基于CentOS的Mysql学习补充二--使用Shell创建数据库 关于使用基于命令使用mysql数据库的方法可见文章<基于CentOS的Mysql的使用说明>,本文只要介绍如何使用Shell脚本来创建我们想要的数据库,下面给出我创建数据库的Shell脚本,基本也就是将mysql的一些命令放在shell脚本里面而已. #!/bin/bash #Author: chisj #Time: 2015.7.22 #Describe: Create Database #The username

lnmp shell安装脚本

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.LNMP是现在大多数大型公司在用的web环境,nginx小巧高效的web服务器和反向代理服务器,相对于apach占用资源更少,抗并发力更强,而且处理静态文件速度非常快.Mysql是一个小型关系型数据库管理系统.PHP是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言.这四种软件均为免费软件,组合到一起,成为一个免费.高效的网站服务系统.接近过年,笔者在家闲着没事写了个LNMP的Sh

Vim编辑器和Shell命令脚本

Vim编辑器和Shell命令脚本 Vim文本编辑器 Vim文本编辑器内设有三种模式:命令模式.末行模式和编辑模式. 命令模式:控制光标移动,可对文本进行删除.复制.粘贴和查找等工作. 输入模式:正常的文本录入. 末行模式:保存.退出与设置编辑环境. 命令模式和末行模式下的一些快捷键: 末行模式下的命令: Shell命令脚本 Shell终端解释器类似人与计算机硬件的翻译官,作为用户与Linux系统内部通讯的媒介.Shell脚本命令的工作方式有两种,首先是前面所接触的交互方式,即当用户每输入一条命令

shell通用脚本启动

Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please change these parameters according to your real env. # set Java Home: Remember that dolphin only supports JDK8! JAVA_HOME=/usr/java/jdk1.8.0_162 # applicat

ArcMap自定义脚本工具制作

原文 ArcMap自定义脚本工具制作 在制图的前期,一般需要做一些数据的整理,如图层合并.裁剪等工作.虽然在ArcMap中也有提供对应的工具,但使用起来需要点技巧.如批量裁剪,虽然可以实现,但出来的结果会重命名为[图层名]_clip,这样对于配置好整个区域的mxd,需要单独裁剪部分范围数据非常不友好,以为后续工作意味着需要单独给裁剪出来的数据重命名,删除掉后缀_clip才可以统一设置数据源. 解决这个问题其实可以很快速的编写python脚本去实现.但脚本对于一般人来说比较麻烦,每次使用都需要调整