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

一、Shell编程基础

1.1 变量

1.1.1 变量定义
  • = 左右不要有空格
  • 如果内容有空格,需要使用单引号双引号
  • 双引号支持转义符,$ 开头的变量会被自动替换
    在这里插入图片描述
1.1.2 预定义变量
  • PWD:当前目录
  • USER:当前用户
  • HOME:当前用户主目录,还可以用~简写
  • PATH:当前所有可执行程序
  • RANDOM:产生一个随机数
    在这里插入图片描述
1.1.3 特殊符号
  • {1..10}:等价于 seq 1 10,表示 1~10 数字
  • seq 1 3 10:表示生成一个步进为 3 的 1~10 的数
  • ((a=a+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...语句块
    在这里插入图片描述
1.2.3 while循环
  • while 首先判断条件,条件成立则在 do 语句块中执行操作。
1.2.4 退出循环 break、continue
  • return:函数返回
  • exit:脚本进程退出
  • break:退出当前循环
  • continue:跳出当前循环,进入下一次循环

二、编写Shell脚本实战

2.1、注释
  • ·注释以#开头,用于增加脚本可读性。shell脚本以.sh结尾。可以使用vim命令创建一个shell脚本。
    在这里插入图片描述
2.2、参数

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

  • $0:表示被执行的程序,也就是当前脚本
  • $1$2 分别表示传递的第 1 个第 2 个参数,Shell 默认只支持 9 个参数,如果你需要支持更多的参数可以使用 shift
  • $@$* 表示所有的参数,但不包含 $0
    在这里插入图片描述
    在这里插入图片描述
2.3、函数
  • 函数:函数是以函数名(){}括起来的内容组成。函数可以实现一些功能封装,同时函数也支持与脚本类似的参数解析逻辑。
    在这里插入图片描述
    在这里插入图片描述

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One Tester

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值