shell脚本

为什么新建好的shell脚本不能直接执行: ~]xxxx.sh

因为在bash中,命令的使用是 command options ,直接用~]xxx.sh,这个xxx.sh会被认为成一个命令,然后bash去PATH中寻找解释器,一般新建脚本的路径不在PATH中,所以无法直接执行,可以使用./指定当前路径来执行sh脚本,或者也可以直接使用绝对路径来执行sh脚本

介绍:

  1. Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe
  2. Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行
  3. 编译型\解释性
    编译型语言
    需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点
    解释型语言
    也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降

Shell脚本解释器
cat /etc/shells
1240
/bin/bash
bash由于易用和免费,在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell脚本解释器。

流程

1240

变量

1240

参数的传递

1240

特殊字符

1240

字符串

1240

数组

1240

运算符

原生bash不支持简单的数学运算,可以通过其他命令来实现,例如 awk 和 expr,expr 最常用,expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
1240
1240

流程控制

1240

函数

1240

1240

环境变量:
1361758-20190916084229387-323808444.png

实现自增
1361758-20190912081538783-1272778895.png

1361758-20190912081550012-629474430.png

示例:
1361758-20190912081607769-529645624.png

1361758-20190912081616474-213438583.png

1361758-20190912081627832-1114040063.png

测试命令:
1361758-20190912081640888-1534469803.png

查找centos用户
1361758-20190912081653874-1659811732.png

1361758-20190912081925781-811680489.png

1361758-20190912082100588-597709282.png

shell中的测试类型
1361758-20190916082945482-1233563938.png
1361758-20190916082907269-1094879908.png
模式匹配
1361758-20190916082922368-708339940.png

脚本的状态返回值
默认的echo $? 输出的就是命令执行状态码
1361758-20190916083048655-338385340.png
文件测试
1361758-20190916083147882-348518047.png
1361758-20190916083352982-2072703186.png

1361758-20190916083310374-2089053110.png

组合测试条件
[](https://img2018.cnblogs.com/blog/1361758/2(01909/1361758-20190916083410617-1942003221.png)

向脚本传参
1361758-20190917231730936-617165777.png
超过9之后 $(10) 一次往后推,使用shift可以完成轮替,shift 1 代表提出第一个位置参数,
1361758-20190917231845852-83267297.png
1361758-20190917231931106-1095402937.png

1361758-20190917232113296-1194445517.png
1361758-20190917232147147-1771985368.png

1361758-20190917232311865-307466231.png

1361758-20190917232340548-653724763.png

1361758-20190920083448198-1667121195.png

比较两数大小
1361758-20190920083513909-22836494.png

也可以直接声明
1361758-20190920083527698-87548046.png

转载于:https://www.cnblogs.com/0916m/p/11484431.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值