Linux SHELL 脚本编程详解

Linux SHELL 脚本编程

脚本编程详解

编程语言的分类:根据运行方式
	1、编译运行:源代码 --> 编译器 (编译)--> 程序文件
	2、解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行
根据其编程过程中功能的实现是调用库还是调用外部的程序文件:
	1、shell脚本编程:利用系统上的命令及编程组件进行编程
	2、完整编程:利用库或编程组件进行编程
编程模型:过程式编程语言,面向对象的编程语言
程序=指令+数据
	1、过程式:以指令为中心来组织代码,数据是服务于代码;
		顺序执行
		选择执行
		循环执行
		代表:C,bash
	2、对象式:以数据为中心来组织代码,围绕数据来组织指令;
		类(class):实例化对象,method;
		代表:Java, C++, Python

名词解释

变量:
	1、局部变量
	2、本地变量
	3、环境变量
	4、位置参数变量
	5、特殊变量

具体参考:
https://blog.csdn.net/weixin_44983653/article/details/95232625
  • 位置参数变量
位置参数变量 :主要是向脚本传递参数。

# myscript.sh  argu1 argu2

引用方式:
	argu1 argu2
      $1,   $2, ..., ${10},  ${11}, ...
				
轮替:
	shift  [n]:位置参数轮替

示例:
root@LeeMumu:~# cat echo.sh           # 通过此脚本,了解位置参数变量
#!/bin/bash

echo $1
echo $2

root@LeeMumu:~# ./echo.sh "The line 1." "The line 2."
The line 1.
The line 2.
  • 特殊变量
$0:脚本文件路径本身
$#:脚本参数的个数
$*:所有参数
$@:所有参数
  • 算术运算和赋值
常用的算术运算符号:
	1、+   加
	2、-   减
	3、*   乘
	4、/   除
	5、**  次方
	6、%   余数
	
算术运算格式:
	1、let  VAR=算术运算表达式
	2、VAR=$[算术运算表达式]
	3、VAR=$((算术运算表达式))
		# 给变量空间赋值时一定要使用 $[ ] 或者 $(( ))
	4、VAR=$(expr $ARG1 $OP $ARG2)
		# (): 括号内部是运行命令,直接取命令运行结果

# 注意:乘法符号在有些场景中需要使用转义符。

增强型赋值:
	变量做某种算术运算后回存至此变量中,如下两种赋值方式表示同一个意思:
		let i=$i+#
		let i+=#
	常用的增强型赋值:		
		+=,-=,*=, /=, %=
	
	自增:
		VAR=$[$VAR+1]
		# 前面的 VAR 是变量空间,后面的 $VAR 是直接取变量空间里的值,注意区分
			let  VAR+=1
			let  VAR++
						
	自减:
		VAR=$[$VAR-1]
			let  VAR-=1
			let  VAR--
%(余数) 示例:
root@LeeMumu:~# yushu=$((9%2))
root@LeeMumu:~# echo $yushu
1
root@LeeMumu:~# yushu=$((8%2))
root@LeeMumu:~# echo $yushu
0

shell 脚本

1、什么是 shell 脚本?
	1、shell 脚本是过程式编程,解释运行,依赖于外部程序文件运行。
	2、shell 脚本是命令的堆积。
# 很多命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免其运行中发生错误。

2、如何编写 shell 脚本?
	脚本文件的第一行,顶格位置需要给出:
		shebang,解释器路径,用于指明解释执行当前脚本的解释器程序文件。
	常见的解释器:
		#!/bin/bash
		#!/usr/bin/python
		#!/usr/bin/perl
	同时,在脚本顶部还可以加入版本、作者和描述等信息,如下:	
		#!/bin/bash
		# Version: 0.0.1
		# Author: LeeMumu
		# Description: XXX

3、如何运行 shell 脚本?
	(1) 赋予执行权限,并直接运行此程序文件
		chmod +x /PATH/TO/SCRIPT_FILE
		source /PATH/TO/SCRIPT_FILE
	(2) 直接运行解释器,将脚本以命令行参数传递给解释器程序
		bash /PATH/TO/SCRIPT_FILE

4、shell 脚本注意事项:
	(1) 脚本中的空白行会被解释器忽略
	(2) 脚本中,除了shebang,余下所有以#开头的行,都会被视作注释行而被忽略;此即为注释行
	(3) shell 脚本的运行是通过运行一个子shell进程实现的

脚本中的条件测试

条件测试:判断某需求是否满足,需要由测试机制来实现。
		
如何编写测试表达式以实现所需的测试:
	(1) 执行命令,并利用命令状态返回值来判断;
		0:成功
		1-255:失败
	(2) 测试表达式
		test  EXPRESSION
		[ EXPRESSION ]
		[[ EXPRESSION ]]
				
# 注意:EXPRESSION两端必须有空白字符,否则为语法错误。

bash 测试分类

bash 的测试类型:
	1、数值测试
	2、字符串测试
	3、文件测试
	4、组合条件测试
  • 1、数值测试
数值测试:数值比较
	-eq:是否等于     
		# [ $num1 -eq $num2 ],注意空格
	-ne:是否不等于
	-gt:是否大于
	-ge:是否大于等于
	-lt:是否小于
	-le:是否小于等于
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值