Shell脚本基础知识

变量
可变化的量即为变量
起变量名称时的注意事项
1)只能字母、数字、下划线,并且不能以数字开头;
2)不应该跟系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要用“_”下划线开头;
3)最好可以做到见名知其义
4)不要使用程序中的保留字,例如if,for等。
变量分为三种类型:
1)字符型
2)数值型
2.1 整型
2.2 浮点型
3)布尔型
设置变量:
例如:a=3
引用变量:
例如:echo $3
撤销变量:
unset a

**环境变量(全局变量):**作用域为当前shell进程及其子进程。
全局变量的文件:/etc/profile,/etc/profile.d/*,/etc/bashcr
功用:用于定义环境变量,运行命令或脚本。
定义环境变量的三种方式
1)export 变量名=value
2)变量名=value;expore 变量名
3)declare -x 变量名=value
设置完全局变量需要重载配置文件:source /etc/profile
默认的环境变量显示:env,set,printenv
本地变量:作用域为当前shell进程。对当前shell外的其它shell进程,包括当前shell的父shell、子shell进程均无效。
配置文件:~/.bash_profile, ~/.bashrc
功用:定义命令别名,定义本地变量
变量名=value
**局部变量:*作用域为当前代码段,常用于函数。
local 变量名=value
特殊变量:
位置变量:$1,$2,$3,…用来引用脚本的参数
$# ##获取当前执行的shell命令中的参数的总个数
$0 ##获取当前执行的shell脚本的文件名,包括路径
$! ##获取当前shell最后运行的后台程序的PID
$@ ##将命令行每个参数视为单独的字符
$
##将所有的命令行的所有参数视为单个字符串
$$ #3获取当前shell的进程号PID
$? ##获取上条命令的退出状态,0为成功,非0则为失败

Bash的内部变量:
PATH
SHELL
UID
HISTSIZE
HOME
PWD
HISTFILE
PS1

只读变量(常量):不能修改值,不能销毁,只能等shell进程终止时随之消亡。
readonly 变量名=vlaue

**脚本:**按实际需要,结合命令流程控制机制实现的源程序。
bash如何测试脚本的错误:
bash -n scriptname ##检查脚本是否有语法错误
bash -x scriptname ##单步执行,检查脚本错在哪里
注意事项:
1)禁止将未成功执行过的代码直接写进脚本
2)脚本中的命令一定要用绝对路径

shell的算数运算:
1)let c=" " a + "a+ "a+b ##let 算术运算表达式
在这里插入图片描述
2)c=$[ $a+ $b] ## $[算术运算表达式]
3)c=(( $a+ $b)) ## $((算术运算表达式))
4)c=expr $a+$b ## 算术运算表达式,表达式中各操作数及运算符之间要有空隔,而且要使用命令引用
增强型赋值:
在这里插入图片描述
在这里插入图片描述

Bash的测试类型:
数值测试:
-gt:是否大于;
-ge:是否大于等于
-eq:是否等于
-ne:是否不等于
-lt:是否小于
-le:是否小于等于
字符串测试:
==;是否等于;
>:是否大于;
<: 是否小于;
!=:是否不等于
~=:左侧字符串是否能够被右侧的PATERN所匹配;
-z“STRING”:测试字符串是否为空,空则为真,不空则为假;
-n“STRING”:测试字符串是否不空,不空则为真,空则为假;
Note:用于字符串比较时的用到的操作数都应该使用引导;

Bash的自定义退出测试码
exit [n]:自定义退出状态码;
注意:脚本一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit命令后面的数字;如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码;
命令间的逻辑关系判断:
逻辑与:&&
第一个条件为假时,第二个条件不用再判断,最终结果已经有
第一个条件为真时,第二个条件必须得判断
逻辑或:||
前一个命令的结果为真时,第二个命令就不执行
前一个命令的结果为假时,第二个命令必须执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值