Shel脚本-初步入门-什么是 Shell 脚本

2、什么是 Shell脚本

当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,改程序就被称为 Shell 脚本。如果在 Shell 脚本里内置了很多条命令、语句及循环控制,然后将这些命令一次性执行完毕,这种通过文件执行脚本的方式称为非交互式的方式。这些命令变量流程控制语句等有机地结合起来,就形成了一个功能强大的 Shell 脚本。

范例1:清除 /var/logmessages 日志文件的简单命令脚本

把所有命令放在一个文件里,堆积起来后就形成了脚本,如下所示:(必须是 root 身份来运行这个脚本)

  1. # 清除日志脚本,版本 1
  2. cd /var/log
  3. cat /dev/null >messages
  4. echo "Logs cleaned up."

这个脚本其实是有一些问题的,具体如下:

  • 1)如果不是 root 用户,则无法执行脚本清理日志,并且会提示系统的权限报错信息。
  • 2)没有任何流程控制语句,简单地说就是只进行顺序操作,没有成功判断和逻辑严密性。

范例2:写一个包含命令、变量和流程控制的语句来清除/var/logmessages 日志文件的 Shell 脚本。

  1. #!/bin/bash
  2. # 清除日志脚本,版本 2
  3. LOG_DIR=/var/log
  4. ROOT_UID=0
  5. if [ "$UID" -ne "$ROOT_UID" ]
  6. then
  7. echo "Must be root to run this script."
  8. exit 1
  9. fi
  10. cd $LOG_DIR || {
  11. echo "Cannot change to necessary directory."
  12. exit 1
  13. }
  14. cat /dev/null >messages &&{
  15. echo "Logs cleaned up."
  16. exit 0
  17. }
  18. echo "Logs cleaned up fail."
  19. exit 1

今天你学习了吗?若有疑问,请留言、私信或加QQ群:647033350,大家一起进步吧!

Shel脚本-初步入门之《02》的更多相关文章

  1. Shel脚本-初步入门之《03》

    Shel脚本-初步入门-Shell 脚本在 Linux 运维工作中的地位 3.Shell 脚本在 Linux 运维工作中的地位 Shell 脚本语言很适合用于处理纯文本类型的数据,而 Linux 系统 ...

  2. Shel脚本-初步入门之《06》

    Shel脚本-初步入门-06 Shell 脚本的建立和执行 6.Shell 脚本的建立和执行 6.1 Shell脚本的建立 在 Linux 系统中,Shell 脚本(bash Shell 程序)通常是 ...

  3. Shel脚本-初步入门之《01》

    Shel脚本-初步入门-什么是 Shell 1.什么是 Shell Shell 是一个命令解释器,它的作用是解释执行用户输入的命令及程序等.Shell 存在于操作系统的最外层,负责与用户直接对话,把用 ...

  4. Shel脚本-初步入门之《04》

    Shel脚本-初步入门-04 脚本语言的种类 4.脚本语言的种类 4.1 Shell 脚本语言的种类 Shell 脚本语言是弱类型语言(无须定义变量的类型即可使用),在 Unix/Linux 中主要有 ...

  5. Shel脚本-初步入门之《05》

    Shel脚本-初步入门-05 常用操作系统默认的 Shell 5.常用操作系统默认的 Shell 通过以下两种方法可以查看 CentOS Linux 系统默认的 Shell 方法1: echo $SH ...

  6. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  7. Shell编程-01-Shell脚本初步入门

    目录 什么是Shell 什么是Shell脚本 Shell脚本语言的种类 常用操作系统默认Shell Shell 脚本的建立和执行 脚本规范 什么是Shell     简单来说Shell其实就是一个命令 ...

  8. shell脚本从入门到精通(初级)之入门篇

    写在开头 本文是阅读<Linux命令行与shell脚本编程大全>时的一些笔记,主要是shell脚本的一些基本语法, 还有很多细节和高级内容没有写到. 笔者也是shell script菜鸟, ...

  9. (五)Lua脚本语言入门

    ---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...

随机推荐

  1. axios如何先请求A接口然后在请求B接口

    总结:在第一个then的请求结束后,在添加一个then,表示请求第二个接口,在第二个then里面写第二个接口的请求方式 axios.get("./a.json").then(res ...

  2. mybatis与hibernate的区别持久层对比【面试题】

    Mybatis技术特点: 好处: 通过直接编写SQL语句,可以直接对SQL进行性能的优化: 学习门槛低,学习成本低.只要有SQL基础,就可以学习mybatis,而且很容易上手: 由于直接编写SQL语句 ...

  3. Windows10下Git环境变量配置

    一.确定Git正确安装并能使用 右键项目目录,检查Git版本: 输入:  git --version 二. 配置环境变量 右键我的电脑 --> 属性 点击高级系统设置 --> 环境变量 - ...

  4. 初学Python几个小程序练习

    使用格式化输出的三种方式实现以下输出(name换成自己的名字,既得修改身高体重,不要厚颜无耻) name = 'ABDMLBM' height = 175 weight = 140 # "M ...

  5. Eclipse查看git中的历史,显示详细时间

    clipse show date details in git history我的eclipse查看git history,显示为相对时间,并不是很方便,想要查看某个具体日期的版本代码,就需要设置为具 ...

  6. Django CSRF

    CSRF(Cross-site request forgery)跨站请求伪造 django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewM ...

  7. Centos7 yum安装MySQL5.7.25

    1 下载并安装MySQL官方的 Yum Repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-commun ...

  8. Java中怎么合理的使用redis?

    redis 支撑许多言语的客户端.在官方网站上有支撑的一切的 [redis 客户端列表]. 因为往常运用 java 作为开发言语,所以这儿描绘一下怎样通过 java 来联接和操作 redis 服务器. ...

  9. EM-高斯混合模型

    EM-高斯混合模型 认识 前面为了直观认识 EM 算法, 用的"扔硬币"的案例, 是为了简化和直观, 而稍微偏应用和深入一点是高斯模型分类,这样一个话题. 就好比我们现在有一堆的数 ...

  10. Web前端开发框架大全-详述

    可以说,前端技术的发展是互联网自身发展的一个缩影! 前端技术的发展经历了web1.0时代,即网页只能展示信息,几乎没有交互可言: web2.0时代,web2.0不再是单维的,逐渐发展为双向交流,另一特 ...