Shell脚本怎么写?这个基础教程你一定要看!

目录

  • 一、Shell编程基础
    • 1.1 变量
        • 1.1.1 变量定义
        • 1.1.2 预定义变量
        • 1.1.3 特殊符号
        • 1.1.4 变量类型
        • 1.1.5 内置判断
    • 1.2 逻辑控制
        • 1.2.1 条件判断 if
        • 1.2.2 for循环
        • 1.2.3 while循环
        • 1.2.4 退出循环 break、continue
  • 二、编写Shell脚本实战
        • 2.1、注释
        • 2.2、参数
        • 2.3、函数

一、Shell编程基础

1.1 变量

1.1.1 变量定义

  • = 左右不要有空格
  • 如果内容有空格,需要使用单引号双引号
  • 双引号支持转义符,$ 开头的变量会被自动替换
    Shell脚本怎么写?这个基础教程你一定要看!_第1张图片

1.1.2 预定义变量

  • PWD:当前目录
  • USER:当前用户
  • HOME:当前用户主目录,还可以用~简写
  • PATH:当前所有可执行程序
  • RANDOM:产生一个随机数
    Shell脚本怎么写?这个基础教程你一定要看!_第2张图片

1.1.3 特殊符号

  • {1..10}:等价于 seq 1 10,表示 1~10 数字
  • seq 1 3 10:表示生成一个步进为 3 的 1~10 的数
  • ((a=a+3)):整数扩展,双括号里面的变量作为整数处理
    Shell脚本怎么写?这个基础教程你一定要看!_第3张图片

1.1.4 变量类型

  • Shell中不区分变量类型的,这一点和Python很像,所有的变量都是基础类型,只是在运行的时候做动态解析。其中字符串数字布尔是常用的。
  • 布尔的基本表示表现形式是 truefalse

1.1.5 内置判断

  • 判断主要包括算数判断的逻辑判断,还有一些 Shell 中内置的判断三个方面。下面为常用的一些内置判断
  • -e file:表示如果文件存在,则结果为真;
  • -d file:表示如果文件是一个子目录,则结果为真;
  • -f file:表示如果文件是一个普通文件,则结果为真
  • -r file:表示如果文件可读,则结果为真;
  • -s file:表示如果文件的长度不为 0,则结果为真;
  • -w file:表示如果文件可写,则结果为真;
  • -x file:表示如果文件可执行,则结果为真。

1.2 逻辑控制

1.2.1 条件判断 if

  • 首先看下 if 条件判断,if 首先检测判断条件是否成立,如果成立则执行 then 语句块内的逻辑,else 执行判断不成立的逻辑,还有 elif…if…,它类似于 Python,当条件都不满足时去判断下一个条件。

1.2.2 for循环

  • 第一种实现方式:for((i=0;i<10;i++))
  • 第二种实现方式:for...in...语句块
    Shell脚本怎么写?这个基础教程你一定要看!_第4张图片

1.2.3 while循环

  • while 首先判断条件,条件成立则在 do 语句块中执行操作。

1.2.4 退出循环 break、continue

  • return:函数返回
  • exit:脚本进程退出
  • break:退出当前循环
  • continue:跳出当前循环,进入下一次循环

二、编写Shell脚本实战

2.1、注释

  • ·注释以#开头,用于增加脚本可读性。shell脚本以.sh结尾。可以使用vim命令创建一个shell脚本。
    Shell脚本怎么写?这个基础教程你一定要看!_第5张图片

2.2、参数

当脚本开始执行的时候,会按照制定规则去解析语句。当传递一个参数给脚本时,它是怎么被解析的?

  • $0:表示被执行的程序,也就是当前脚本
  • $1$2 分别表示传递的第 1 个第 2 个参数,Shell 默认只支持 9 个参数,如果你需要支持更多的参数可以使用 shift
  • $@$* 表示所有的参数,但不包含 $0
    Shell脚本怎么写?这个基础教程你一定要看!_第6张图片
    Shell脚本怎么写?这个基础教程你一定要看!_第7张图片

2.3、函数

  • 函数:函数是以函数名(){}括起来的内容组成。函数可以实现一些功能封装,同时函数也支持与脚本类似的参数解析逻辑。
    Shell脚本怎么写?这个基础教程你一定要看!_第8张图片
    Shell脚本怎么写?这个基础教程你一定要看!_第9张图片

你可能感兴趣的:(Linux和Shell)