脚本实现新建脚本shebang及开头约定自动添加

简介:

  运维应该是一个好的管理员,好的管理员不仅需要技术支撑,一个良好的编程习惯不仅会提高所写脚本的可读性,还能方便自己管理。再者,高效快捷作为基本职业素质及偷懒的必备技能,已经到了每个运维人员都得不得不重视的程度。毕竟,节省越多的时间就意味着越多的可能性。比如喝咖啡打游戏泡妹子推塔刷番看电影画本子什么鬼的,啊,毕竟阿拉还没正式工作,阿拉怎么可能知道职业运维人的日常?(手动摊手无奈脸,请自行脑补)

    咳咳,废话说太多了。

    总之我们来看一下题目。

写一个能够创建新脚本的Shell script,如名为create.sh 当执行如createsh /root/bin/test1.sh时,则会自动创建并打开/root/bin/test1.sh,且其中包含以下内容。

#!/bin/bash

# ------------------------------------------

# Filename: 

# Revision: 

# Date: 

# Author: 

# Email:

# Website:

# Description: 

# ------------------------------------------

    其实看到这个题目,阿拉率先想到的是把那长长的一段写入一个文档,然后每次复制文档就可以了。喂,看我这么机智不夸夸我吗?

    这样的话只要事先写好一个文件如head.sh,head.sh内包含如下内容:

                #!/bin/bash

                # ------------------------------------------

                # Filename: 

                # Revision: 

                # Date: 

                # Author: 

                # Email:

                # Website:

                # Description: 

                # ------------------------------------------

    那我们的create.sh的主要内容只需要有以下两行就足够了:

                    cp head.sh $1

                    vim $1

    这样的话不仅代码执行速度快,而且便于后期维护,随时向head.sh内添加内容,也会在新一次执行create.sh file的时候随之增添。

    但这样就有一个问题。程序的执行必须依托于head.sh,而cp是基于文件复制。(原本阿拉还想将head.sh的内容用一个变量表示,然而cp并不能识别非文件的变量。这点也是测试了好久才突然想通的。-!_!-初学者的无自觉主义0.0)

    Linux里的命令如此多,能够这样写入变量的其他命令倒是有的。比如再基础的新人都会用的echo。下面放个完整的代码。

#!/bin/bash

# ------------------------------------------

# Filename: createsh30.sh

# Revision: 1.1

# Date: 20170802

# Author: zhangsan

# Email: 798761864@qq.com

# Website: 

# Description: This script just for creat new script

# ------------------------------------------


touch $1

echo "#!/bin/bash" >> $1

echo "# ------------------------------------------" >> $1

echo "# Filename: " >> $1

echo "# Revision: " >> $1

echo "# Date: " >> $1

echo "# Author: " >>$1

echo "# Email: " >> $1

echo "# Website: " >> $1

echo "# Description: " >> $1

echo "# ------------------------------------------" >> $1


chmod +x $1


vim $1

    本来不想说太多无关的话的,不过开头已经那么啰嗦也无所谓这些了吧。其实这个代码阿拉也是看到别人这么写才意识到还能这么干的。结果看到别人的想法比自己好,脑子就迈不开步向前走了0.0,一直到现在也不知道自己下手会写成什么样子。

    是初学者没错,但若要以此止步这辈子大概都不会有长足的进步了。

    所以啊,以后自己写代码之前,尽量不要问别人呦。咳咳,这和交流意见不是一个概念了。

    嗯,就这。













本文转自阿拉杜美美51CTO博客,原文链接: http://blog.51cto.com/amelie/1953265,如需转载请自行联系原作者









相关文章
|
6月前
|
JavaScript
cnpm : 无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1
cnpm : 无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1
422 0
|
C++
VS Code识别编辑规范,ESlint规则,VS Code保存去掉自动加分号、逗号、双引号
书写规范是非常重要的,除了统一,还要简洁。 1、VS Code识别编辑规范 在项目根目录新建.editorconfig文件,加入设置:
796 0
完美解决->“pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。”
完美解决->“pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。”
完美解决->“pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。”
|
JavaScript
tsc : 无法将“tsc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
tsc : 无法将“tsc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
tsc : 无法将“tsc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
|
8月前
|
XML 存储 数据格式
基于大量文件的名称特征自动新建多个文件夹并自动复制对应文件:Python
本文介绍基于Python,对一个文件夹下大量栅格影像,基于其各自文件名,分别创建指定名称的新文件夹,并将对应影像文件复制到不同的新文件夹下的方法。
113 3
基于大量文件的名称特征自动新建多个文件夹并自动复制对应文件:Python
|
PHP
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
1836 0
php : 无法将“php”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
|
JSON Shell 测试技术
gookit/config - Go应用配置管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名等等
gookit/config - Go应用配置管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名,绑定数据到结构体等等
141 0
gookit/config - Go应用配置管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名等等
|
SQL Shell 数据库
如何让脚本在任意地方可执行
如何让脚本在任意地方可执行
126 0
如何让脚本在任意地方可执行
|
Ubuntu Linux Shell
如何让你的脚本可以在任意地方都可执行?
如何让你的脚本可以在任意地方都可执行?
401 0
如何让你的脚本可以在任意地方都可执行?
|
缓存 开发工具 git
.gitignore忽略规则、语法、检查文件详解
.gitignore忽略规则、语法、检查文件详解
723 0