Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Shell脚本常用模板

Shell脚本常用模板

作者头像
踏歌行
发布于 2020-10-15 03:42:44
发布于 2020-10-15 03:42:44
1.9K00
代码可运行
举报
文章被收录于专栏:踏歌行的专栏踏歌行的专栏
运行总次数:0
代码可运行

  作为一个运维人员编写Shell脚本是很平常的,一个格式好的脚本不仅赏心悦目,后期自己和别人也易于维护。

  下面的脚本就是我自己的shell编写格式,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@mini05 20180930-2]# cat template.sh 
 2 #!/bin/sh
 3 ################ Version Info ##################
 4 # Create Date: 2018-09-29
 5 # Author:      Zhang
 6 # Mail:        zhang@xxxx.com
 7 # Version:     1.0
 8 # Attention:   shell脚本模板
 9 ################################################
10 
11 # 加载环境变量 
12 # 如果脚本放到crontab中执行,会缺少环境变量,所以需要添加以下313 . /etc/profile
14 . ~/.bash_profile
15 . /etc/bashrc
16 
17 # 脚本所在目录即脚本名称
18 script_dir=$( cd "$( dirname "$0"  )" && pwd )
19 script_name=$(basename ${0})
20 # 日志目录
21 log_dir="${script_dir}/log"
22 [ ! -d ${log_dir} ] && {
23   mkdir -p ${log_dir}
24 }
25 
26 errorMsg(){
27   echo "USAGE:$0 arg1 arg2 arg3"
28   exit 2
29 }
30 
31 
32 doCode() {
33   echo $1
34   echo $2
35   echo $3
36 }
37 
38 main() {
39   if [ $# -ne 3 ];then
40     errorMsg
41   fi
42   doCode "$1" "$2" "$3"
43 }
44 
45 # 需要把隐号加上,不然传入的参数就不能有空格
46 main "$@"

测试如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@mini05 20180930-2]# ./template.sh 
 2 USAGE:./template.sh arg1 arg2 arg3
 3 [root@mini05 20180930-2]# ./template.sh 111
 4 USAGE:./template.sh arg1 arg2 arg3
 5 [root@mini05 20180930-2]# ./template.sh 111 '222 333'
 6 USAGE:./template.sh arg1 arg2 arg3
 7 [root@mini05 20180930-2]# ./template.sh 111 '222 333' "444 555"
 8 111
 9 222 333
10 444 555
11 [root@mini05 20180930-2]# ./template.sh 111 '222 333' "444 555" "666"
12 USAGE:./template.sh arg1 arg2 arg3
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Shell按行读取文件的3种方法
  Shell按行读取文件的方法有很多,常见的三种方法如下: 要读取的文件: 1 [root@mini05 20180930-2]# cat file.info 2 111 3 222 4 333 444 5 555 666 写法一: 1 [root@mini05 20180930-2]# cat read1.sh 2 #!/bin/bash 3 ################ Version Info ################## 4 # Create Date: 2018-09-2
踏歌行
2020/10/15
2.2K0
Shell脚本基础详解
Shell脚本 是一个脚本语言,用来自动执行我们指定的系统命令的。 通俗的讲,再shell脚本当中,我们会编写一些需要使用的系统命令于其中再运行这个叫本的时候,这些被编写进去的系统命令会按照书写的顺序及规则以此运行。
全栈程序员站长
2021/06/10
8930
Shell脚本基础详解
shell脚本:通过域名获取证书的过期时间
参考博文:linux学习第七十一篇:shell脚本:通过域名获取证书的过期时间并邮件告警
踏歌行
2020/10/15
1.9K0
Linux常用Shell脚本知多少
在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本。如何学好脚本,最关键的是就是大量的练习 和实践。根据以下脚本我们可以拓展,这样我们提高的很快!举一反三!
Bug开发工程师
2018/12/14
1K0
shell脚本-函数
https://www.cnblogs.com/shenxm/category/1154724.html shell脚本-函数 函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。 函数和shell程序比较相似,区别在于: Shell 程序在子Shell中运行 而Shell函数在当前Shell中运行。因
菲宇
2022/12/21
5910
9个常用的Shell脚本
1、Dos 攻击防范(自动屏蔽攻击 IP)#!/bin/bashDATE=$(date +%d/%b/%Y:%H:%M)LOG_FILE=/usr/local/nginx/logs/demo2.access.logABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}')for IP in $ABNORMAL_IP; do    if [ $(iptables -vnL
星哥玩云
2022/06/25
1810
【DB笔试面试821】在Oracle中,如何定时生成AWR报告?
有的系统需要定时生成html格式的AWR报告,这个需求可以使用SHELL脚本来完成。
AiDBA宝典
2020/06/17
9140
编写Linux Shell脚本的最佳实践
由于工作需要,最近重新开始拾掇shell脚本。虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看。而且当我在看其他人写的脚本的时候,总觉得难以阅读。毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用。因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视。同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一。 考虑到上面的这些原因,我查阅了一些相关的文档,发现这些问题其实很多人都考虑过,而且也形成了一些不错的文章,但是还是有点零散。因此我就在这里把这些文章稍微整理了一下,作为以后我自己写脚本的技术规范。
用户5807183
2019/07/15
1.1K0
编写Linux Shell脚本的最佳实践
超实用!带你搞懂Shell脚本与变量的正确打开方式
把代码封装成脚本是编程的核心目的,多个脚本的集成也是软件开发的基础,这部分内容我们来给大家初步介绍一下shell脚本和变量的概念并给大家演示一些简单的用法。
天意生信云
2025/01/22
1390
超实用!带你搞懂Shell脚本与变量的正确打开方式
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.4K0
101个shell脚本
Shell 编程:探索 Shell 的基本概念与用法
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
久绊A
2023/12/19
2930
Hadoop2.7.6_02_HDFS常用操作
  点击流日志每天都10T,在业务应用服务器上,需要准实时上传至数据仓库(Hadoop HDFS)上
踏歌行
2020/10/15
4420
Hadoop2.7.6_02_HDFS常用操作
Shell脚本编程_shell简单脚本
  shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,在用户和内核之间充当翻译官的角色,是一个命令解释器。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 shell。
全栈程序员站长
2022/11/09
8.1K0
Shell脚本编程_shell简单脚本
shell技巧分享(四)
20 Apr 2018 shell技巧分享(四) 这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。 1 常用快捷键 Alt+Backspace:删除光标前的一个单词 Alt+F:移动光标到下一个空格处 Alt+B:移动光标到上一个空格后第一个字符处 Ctrl+R:搜索执行过的命令行 Ctrl+U:删除光标之前所有字符 Ctrl+K:删除光标之后的所有字符 Ctrl+A:移动光标到行首 Ctrl
俊采
2018/05/15
7460
轻度Linux服务器维护人员常用的Shell脚本命令
笔者平时属于非专业运维人员,但是偶尔也需要接触一些测试服务器和个人VPS服务器。所以收集了一些常用的Shell脚本,希望跟我一样的开发人员能有一些收获。 文件操作 更改当前目录 cd 获取当前目录 pwd 删除文件/目录 rm -f or rm -rf or rmdir 创建文件 touch or cat > xxx 创建临时文件 mktemp testing.XXXXXX, 文件名末尾加6个X 创建临时目录 mktemp -d dir.XXXXXX, 目录名末尾加6个X 创建目录 mkdir 移动文件/文
李海彬
2018/03/28
2.2K0
Shell脚本中的while getopts用法小结
getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数。getopts被Shell程序用来分析位置参数,option包含需要被识别的选项字符,如果这里的字符后面跟着一个冒号,表明该字符选项需要一个参数,其参数需要以空格分隔。冒号和问号不能被用作选项字符。getopts每次被调用时,它会将下一个选项字符放置到变量中,OPTARG则可以拿到参数值;如果option前面加冒号,则代表忽略错误;
洗尽了浮华
2019/10/30
9.2K0
[linux] shell脚本编程-xunsearch安装脚本学习
2.if判断格式如,写成一行 ,if test 条件;then 动作;else 动作;fi
唯一Chat
2019/09/10
6540
更新博客生成发布及同步GitHub的Shell脚本:解决文件名空格问题
前面一篇文章通过Linux Shell脚本的方式,实现博客生成发布及同步GitHub的的功能:先同步GitHub个人仓库中的Markdown文章到本地,然后通过Pelican编译生成静态HTML文件,最后发布到Nginx的web目录下面,同时更新到GitHub个人主页(vfhky.github.io)。
typecodes
2024/03/29
1390
更新博客生成发布及同步GitHub的Shell脚本:解决文件名空格问题
Linux/Unix shell 自动导出Oracle数据库
       使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来实现数据库自动导出。
Leshami
2018/08/14
1.2K0
CentOS中将备份文件同步到BitBucket、GitHub和Coding的shell脚本
在上一篇文章讲述了如何在Linux系统中配置BitBucket、GitHub和Coding这三个平台的git账户,这篇文章就分享如何通过shell脚本定时获取自己的CentOS7.1服务器上的备份文件,然后使用git命令同步到这三个平台仓库上。
typecodes
2024/03/29
1500
CentOS中将备份文件同步到BitBucket、GitHub和Coding的shell脚本
相关推荐
Shell按行读取文件的3种方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验