Shell 脚本的介绍

Shell脚本通过Shell终端解释器当作人与计算机硬件之间的翻译官,用户可以通过它执行各种命令,不仅有简单的,还有复杂的,比如:判断、循环、分支等这些高级编程中才有的特性。Shell 命令有两种工作方式:

交互式:用户每输入一条命令就立即执行。

批处理:由用户事先编写好一个完整的脚本,然后再一次性执行完Shell脚本中的命令。

交互式,比如:

    # 输入系统的PATH变量到屏幕上
echo $PATH

批处理,就是把之前学习的Linux命令以及正则表达式,管道符,数据流重定向等语法规则结合到一起,再通过内部的逻辑语句进行处理,最终形成一个 Shell 脚本。

我们可以编写一个简单的脚本:

test.sh

    #!/bin/bash
# 这个一行注释
pwd
ls -l

Shell 脚本的后缀名可以为任何类型,但是为避免用户误以为是普通文件,所以普遍将用 .sh 作用后缀名

上面这个脚本:

第一个行是声明脚本以 bin/bash 解析器解析。

第二行是注释,对脚本的功能介绍。

第三行,第四行, 是两个简单的命令,就是我们平时执行的命令。

使用脚本接收用户的参数

如果我们的脚本像上面简单的编写的话,那也太过死板了,不够灵活,不能处理多种情况,如果一个程序不能和用户交互的话,就是一个好的程序,所以必须要让程序接收用户的参数。

接收参数命令及作用

参数 作用
$0 脚本的名称
$# 参数的个数
$* 对应所有的参数
$? 上一次命令的返回
$n 分别对应第n个位置的参数

exec.sh

    #!/bin/bash
echo "脚本的名称为:$0"
echo "脚本一共有:$# 个参数,分别是:$*"
echo "第二个参数是:$2,第五个参数是:$5"

各个参数之间用空隔间隔

判断文件的参数

文件判断的参数

命令 作用
-d 判断文件是否为目录
-e 判断文件是否为空
-f 判断文件是否为一般文件
-r 判断文件是否可读
-w 判断文件是否可写
-x 判断文件是否可以执行

中括号的前后最后留一个空格的距离

Shell 脚本中的判断不仅仅可以判断文件,还可以比较数值:

可用于整数比较的运算符

命令 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否小于等于
-ge 是否大于等于

还可以用来比较字符串是否相等:

命令 作用
= 比较字符串内容是否相等
!= 比较字符串内容是否不相等
-z 判断字符串内容是否为空


细节决定成败!

个人愚见,如有不对,恳请扶正!

最新文章

  1. ASP.NET MVC为字段设置多语言显示 [转]
  2. 【python】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
  3. QQ左侧滑动显示
  4. form上传文件以及跨域异步上传
  5. 聚类算法kmeans
  6. Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds 解决方法
  7. linux下开启防火墙,打开端口
  8. Delphi开发ocx插件的调试
  9. Http Get Post put delete
  10. [技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档
  11. 自由的Debian
  12. 如何设置Cookie 的值为中文的内容
  13. Ubuntu下Java开发环境搭建(eclipse)
  14. Pie
  15. Winform C# 简单实现子窗口显示进度条
  16. 全面理解 ASP.NET Core 依赖注入
  17. 20.QT-Qpixmap实现图片鼠标缩放,鼠标拖动示例(详解)
  18. jq 点击复制div里面的内容 如果粘贴到富文本中,会将样式,里面所有的标签,文字一并粘贴进去
  19. [PHP] 适配器模式的日常使用
  20. C# 之 反射性能优化2

热门文章

  1. 在gin框架中使用JWT
  2. jquery 改变标签样式
  3. GPU编程和流式多处理器(三)
  4. python-selenium 引入包或者类的清晰写法
  5. selenium-python元素定位技巧(二)
  6. 操作系统-Linux命令
  7. 性能工具之Jmeter-Dubbo脚本开发
  8. 一文讲全了Python 类和对象内容
  9. 实验8、31个最重要的Python Flask面试问题和答案
  10. 10:ValueError: Cannot assign "'2'": "Comment.article" must be a "Article" instance