bash 配置文件
按生效范围划分:存在两类;
全局配置:
/etc/profile
/etc/profile.d/*.sh
个人配置;
~/. bash_profile
~/.bsahrc
按功能划分,存在两类;
profile类;为交互式登录的shell提供 配置
全局:/etc/profile,/etc/profile.d/*.sh
个人:~/.bash_profile
功用:
(1)用于定义环境变量
(2)运行命令或脚本;
bashrc类;为非交互式登录的shell提供配置
全局:/etc/bashrc
个人:~/.bashrc
功用:
(1)定义命令别名
(2)定义本地变量
shell登录;
交互式登录:
直接通过终端输入账号密码登录;
使用“su – UserName”或”su -l UserName”切换的用户
非交互式登录;
su UserName
图形界面下打开的终端
执行脚本
~/.bashrc – -> /etc/bashrc – -> /etc/profile.d/*.sh
编辑配置文件定义的新配置的生效方式;
bash中的算术运算
+,–,*,/,%,
实现算术运算;
(1)let var=算术表达式
(2)var=$(算术表达式)
(3)var=$((算术表达式))
(4)var=$(expr ar)
乘法符号有些场景中需要转义:
bash有内建的随机数生成器:$RANDOM
增强型赋值:
+=,-=,*=,/=,%=
let varOPERvalue
例如:let count+=1
自增,自减
let var+=1
let var++
let var-=1
let var–
条件测试
判断需求是否满足,需要由测试机制来实现
Note:专用的测试表达式需要由测试命令辅助完成测试过程
测试命令:
test EXPRESSION
[EXPRESSION]
[[EXPRESSION]]
Note:EXPRESSION前后必须有空白字符
bash的测试类型
数值测试
-get: 是否大于
-ge: 是否大于等于
-eq: 是否等于;
-ne: 是否不等于
-lt: 是否小于
-le: 是否小于等于;
字符串测试
==:是否等于
>: 是否大于
<: 是否小于
l=: 是否不等于;
~=:左侧字符串是否能被右侧的PATTERN所匹配
-z “SIRING”;测试字符串不否为空,空则为真,不空则为假;
-n”SIRING”, 测试字符串是否不空,不空则为真,空则为假;
Note:用于字符串比较时的用到的操作数都应该使用引号;
bash自定义退出状态码
exit [n]:自定义退出状态码
注意:脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决给于exit命令后面的数字;
注意:如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码
let let命令Shell内建命令 let命令是bash中用于计算的工具,提供常用运算符还提供了方幂**运算符。在变量的房屋计算中不需要加上$来表示变量,如果表达式的值是非0,那么返回的状态值是0;否则,返回的状态值是1。
bash运算
(1)let var=算术表达式
[root@localhost ~]# num1=3 [root@localhost ~]# num2=20 [root@localhost ~]# let var=num1+num2 [root@localhost ~]# echo $var
(2)var=$(算术表达式)
[root@localhost ~]# let var=$num1+$num2 [root@localhost ~]# echo $var 23
(3)var=$((算术表达式))
[root@localhost ~]# echo $(($sum1+$sum2)) 32
(4)var=$(expr ar)
[root@localhost ~]# mu12=$(expr $num1 \* $num2) [root@localhost ~]# echo $mu12 60
增强型赋值 自增
[root@localhost ~]# echo $count 1 [root@localhost ~]# count=$[$count+1] [root@localhost ~]# echo $count 2 [root@localhost ~]# count=$[$count+1] [root@localhost ~]# echo $count 3 [root@localhost ~]# count=$[$count+1] [root@localhost ~]# echo $count 4
bash的基础特性:
globbing:文件名通配(整体文件名匹配,而非部分)
匹配模式:元字符
*:匹配任意长度的任意字符
pa*, *pa*, *pa, *p*a*
pa, paa, passwd
?:匹配任意单个字符
pa?, ??pa, p?a, p?a?
pa, paa, passwd
[]:匹配指定范围内的任意单个字符
有几种特殊格式:
[a-z], [A-Z], [0-9], [a-z0-9]
[[:upper:]]:所有大写字母
[[:lower:]]:所有小写字母
[[:alpha:]]:所有字母
[[:digit:]]:所有数字
[[:alnum:]]:所有的字母和数字
[[:space:]]:所有空白字符
[[:punct:]]:所有标点符号
pa[0-9][0-9], 2[0-9][0-9]
[^]:匹配指定范围外的任意单个字符
[^[:upper:]]
[^0-9]
[^[:alnum:]]
原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/75836