5. Bash的运算符
5.1 数值运算与运算符
5.1.1 declare 声明变量类型:#declare [+/-] [选项] 变量名
选项 |
说明 |
- |
给变量设定类型属性 |
+ |
取消变量的类型属性 |
-i |
将变量声明为整数型(integer) |
-x |
将变量声明为环境变量 |
-p |
显示变量被声明的类型。 |
(1)数值运算——方法1:
#aa=11 #bb=22 #declare –i cc=$aa+$bb //将cc声明为整型
(2)数值运算——方法2,使用expr或let数值运算工具。
#dd=$(expr $aa + $bb) (注意“+”两侧必须有空格,其中的“$()”表示获得小括号内系统命令执行的结果)
(3)数值运算——方法3:“$((运算式))”或“$[运算式]” (注意是$()的括号起的部分表示系统命令,而$(())双小括号表示数值运算!)
【编程实验】变量声明和数值运算
#!/bin/bash aa=11 bb=22 #显示变量aa的类型 declare -p aa #将aa设为环境变量 export aa #再次显示变量aa的类型 declare -p aa #数值运算:方法1 declare -i cc=$aa+$bb #数值运算:方法2 dd=$(expr $aa + $bb) #数值运算:方法3 ee=$(($aa+$bb)) ff=$[$aa+$bb] echo "cc=$cc" echo "dd=$dd" echo "ee=$ee" echo "ff=$ff"
5.1.2 运算符
优先级 |
运算符 |
说明 |
13 |
-,+ |
单目负,单目正 |
12 |
!,~ |
逻辑非、按位取反或补码 |
11 |
*,/,% |
乘、除、取模 |
10 |
+,- |
加、减 |
9 |
<<,>> |
按位左移、按位右移 |
8 |
< =, > =,<,> |
小于或等于、大于或等于、小于、大于 |
7 |
==,!= |
等于、不等于 |
6 |
& |
按位与 |
5 |
^ |
按位异或 |
4 |
| |
按位或 |
3 |
&& |
逻辑与 |
2 |
|| |
逻辑或 |
1 |
=,+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>= |
赋值、运算且赋值 |
5.2 变量测试与内容替换
变量置换方式 |
变量y没有设置 |
变量y为空值 |
变量y设置值 |
x=${y-新值} |
x=新值 |
x为空 |
x=$y |
x=${y:-新值} |
x=新值 |
x=新值 |
x=$y |
x=${y+新值} |
x为空 |
x=新值 |
x=新值 |
x=${y:+新值} |
x为空 |
x为空 |
x=新值 |
x=${y=新值} |
x=新值 y=新值 |
x为空 y=值不变 |
x=$y y值不变 |
x=${y:=新值} |
x=新值 y=新值 |
x=新值 y=值不变 |
x=$y y值不变 |
x=${y?新值} |
新值输出到标准错误输出(就是屏幕) |
x为空 |
x=$y |
x=${y:?新值} |
新值输出到标准错误输出 |
新值输出到标准错误输出 |
x=$y |
(1)可通过x的值来判断y是否被设置或为空值
(2)测试x=${y-新值}
#unset y //删除变量y #x=${y-new} #echo $x //输出new,因为变量y不存在,所以x=new
6. 环境变量配置文件
6.1 配置文件
(1)source命令:强制让配置文件生效
#source 配置文件,或
#. 配置文件(注意,“.”与配置文件之间有空格)
(2)环境变量配置文件
环境变量配置文件主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH、HINSTSIZE、PS1、HOSTNAME等默认环境变量。
6.2 配置文件的作用
(1)配置文件的调用顺序
(2)主要的配置文件
文件 |
作用 |
备注 |
/etc/profile |
①USER变量 ②LOGMANAE变量 ③MAIL变量 ④PATH变量 ⑤HOSTNAME、HISTSIZE变量 ⑥umask ⑦调用/etc/profile.d/*.sh文件 |
对所有用户生效 |
/etc/profile.d/*.sh |
①/etc/profile.d/目录下存放一些与颜色语言等相关的配置文件。 ②调用/etc/sysconfig/i18n配置文件(语言环境,如UTF-8) |
|
/etc/bashrc |
①PS1变量(登录提示符) ②umask ③PATH变量 ④调用/etc/profile.d/*.sh文件 |
|
~/.bash_profile |
①调用了~/.bashrc文件 ②在PATH变量后面加入了:“$HOME/bin”这个目录。 |
对当前用户生效,放于家目录并且为隐藏文件。 |
~/.bashrc |
①定义默认别名 ②调用/etc/bashrc文件 |
6.3 其他配置文件和登录信息
(1)注销时生效的环境变量配置文件:~/.bash_logout
(2)历史命令配置文件:~/bash_history
(3)Shell登录信息
①本地终端欢迎信息:/etc/issue(只能本地登录才能看到这些信息)
转义符 |
作用 |
\d |
显示当前系统日期 |
\s |
显示操作系统名称 |
\l |
显录登录的终端号,这个比较常用 |
\m |
显示硬件体系结构,如i386、i686等。 |
\n |
显示主机名 |
\o |
显示域名 |
\r |
显示内核版本 |
\t |
显示当前系统时间 |
\u |
显示当前登录用户的序列号 |
②远程终端欢迎信息:/etc/issue.net
A.转义符在/etc/issue.net文件中不能使用
B.是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入“Banner /etc/issue.net”行才能显示(要重启SSH服务,#service sshd restart)
③登录后欢迎信息:/etc/motd,不管是本地登录还是远程登录,都可以显示此欢迎信息。但他是登录后才会显示的信息,不像前两者是登录之前显示的信息。