概念-shell 脚本编程
2020-08-07 20:03
676 查看
shell 脚本编程:基于过程式、解释执行的语言
shell 脚本:包含一些命令或声明,并符合一定格式的文本文件
格式要求:首行shebang机制
#!/bin/bash
shell 脚本创建过程
1 使用文本编辑器来创建文本文件,第一行必须包括shell 声明序列:#!
2 给予执行权限,在命令行上指定脚本的绝对或相对路径
执行的方式
#方式1 [root@CentOS8 ~]#bash /data/hello.sh #方式2 [root@CentOS8 ~]#cat /data/hello.sh | bash #方式3 [root@CentOS8 ~]#bash < /data/hello.sh #方式4 [root@CentOS8 ~]#chmod +x /data/hello.sh #绝对路径 [root@CentOS8 ~]#/data/hello.sh #相对路径 [root@CentOS8 ~]#cd /data [root@CentOS8 ~]#./hello.sh #方式5,主要用于实现执行远程主机的shell 脚本 [root@CentOS8 ~]#yum -y install httpd [root@CentOS8 ~]#systemctl start httpd [root@CentOS8 ~]#mv /data/hello.sh /var/www/html/ [root@CentOS8 ~]#curl http://10.0.0.6/hello.sh [root@CentOS8 ~]#curl -s http://10.0.0.6/hello.sh [root@CentOS8 ~]#curl -s http://www.wangxiaochun.com/testdir/hello.sh | bash [root@CentOS8 ~]#wget -qO - http://www.wangxiaochun.com/testdir/hello.sh | bash
3 运行脚本,直接运行解释器,将脚本作为解释器程序的参数运行
shell 脚本注释规范
1 第一行一般是调用使用的语言
2 脚本名称,避免更改文件名为无法找到正确的文件
3 版本号
4 更改后的时间
5 作者相关信息
6 该脚本的作用和注意事项
7 各版本的更新简要说明
范例
#!/bin/bash# -------------------------------------------- # Filename: hello.sh # Version: 1.0 # Date: 2020/08/07 # Author: dawn # Description: This is the script # --------------------------------------------
shell 脚本调试
只检测脚本中的语法错误,无法检查出命令错误。不真正执行脚本
bash -n /path/to/some_script
调试并执行
bash -x /path/to/some_script
脚本错误常见的有三种:
- 语法错误 会导致后续的命令不继续执行,可用bash -n 检查错误,提示的出错行数不一定是准确的
- 命令错误 默认后续的命令还会继续执行,用bash -n 无法检查出来,可使用bash -x 进行观察
- 逻辑错误 只能使用bash -x 进行观察
创建shell 脚本模版
范例
参照 https://www.jianshu.com/p/4b2e9c881f45
# 设置成全局,则修改 /etc/vimrc # 设置成当前用户,则修改 ~/.vimrc autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setline(2,"#********************************************************************") call setline(3,"#Author:dawn") call setline(4,"#Date:".strftime("%Y-%m-%d %T")) call setline(5,"#FileName:".expand("%")) call setline(6,"#URL:https://blog.csdn.net/xiao_dan_") call setline(7,"#Version:1.0") call setline(8,"#Description:The test script") call setline(9,"#********************************************************************") call setline(10,"") endif endfunc autocmd BufNewFile * normal G
相关文章推荐
- Shell 脚本编程(1)
- 简单的shell脚本编程
- Shell 脚本编程总结(一)
- 关于 shell 脚本编程的10 个最佳实践
- shell的基本概念
- shell 脚本编程学习(八) 综合实例
- bat shell 脚本编程简介
- 操作系统基本概念(文件,shell)(get a intuitive feel)
- 控制台,终端,虚拟终端,tty,shell等概念的区别(转)
- Shell 脚本编程快速入门
- (转)第12章 Shell脚本编程
- Spark入门实战系列--3.Spark编程模型(上)--概念及SparkShell实战
- 自主shell脚本编程
- shell 脚本编程的10 个最佳实践
- shell 脚本编程之变量
- 【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念;
- shell相关概念
- mongodb概念--文档、集合、数据库、shell(转并学习)
- 总结PHP权威指南 - PHP Shell脚本编程
- shell概念