|
Bash中的算数运算
算数运算:
(1)let var=算数表达式
(2)var=$[算数表达式]
(3)var=$((算数表达式))
(4)var=$(expr arg1 arg2 arg3 ...)
(5)declare -i var = 数值
(6)echo '算数表达式' | bc
赋值: +=,-=,*=,/=,%=
例:let var+=3 #变量var自加3后赋值
自增,自减:
let var+=1
let var++
let var-=1
let var--
逻辑运算:
ture false
真 假
运算结果为真时:echo $? 输出结果为0
与运算:
真 && 真 = 真
真 && 假 = 假
假 && 真 = 假
假 && 假 = 假
或运算:
真 || 真 = 真
真 || 假 = 真
假 || 真 = 真
假 || 假 = 假
非运算:
! 真 = 假
! 假 = 真
短路运算:
短路与:
第一个结果为假,结果必定为假
第一个结果为真,则第二个要参与运算
短路或:
第一个结果为真,结果必定为真
第一个结果为假,则第二个要参与运算
异或:
异或的两个值,相同为假,不同则为真
Bash中条件测试:
(1) test 表达式
(2) [ 表达式 ]
(3) [[ 表达式 ]]
----------------------------------------------------------
[ ] : 用到变量要加" "
[[ ]] : 可以使用扩展正则
注意:表达式前后必须有空格(推荐使用: [ ] )
Bash数值测试:
存在性:
- a FILE , -e FILE:文件存在为真,否则为假
存在性及类型:
-b FILE :是否存在且为块设备文件
-c FILE :是否存在且为字符设备文件
-d FILE :是否存在且为目录文件
-f FILE :是否存在且为普通文件
-p FILE :是否存在且为命名管道文件
-S FILE :是否存在且为套接字文件
-h FILE , -L FILE:存在且为符号链接文件
文件权限:
-r FILE :是否存在且可读
-w FILE :是否存在且可写
-x FILE :是否存在且可执行
Bash的组合测试条件:
第一种方式:
命令1 && 命令2 :并且
命令1 || 命令2 :或者
! 命令 : 非
例:[[ -r file ]] && [[ -w file ]]
#文件是否拥有读权限并且拥有写权限
第二种方式:
表达式1 -a 表达式2 :并且
表达式2 -o 表达式2 :或者
! 表达式
例:[ -z "$HOSTNAME" -o "$HOSTNAME" == "localhost" ]
$HOSTNAME是否为空或者是否等于localhost
==========================================================
Bash的配置文件:
全局配置:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置:
~/.bash_profile
~/.bashrc
交互式登录:
(1)直接使用终端输入账号密码登录
(2)使用 su - User 切换登录
交互式登录时读取配置文件的顺序:
1. /etc/profile
2. /etc/profile.d/*sh
3. ~/.bash_profile
4. ~/.bashrc
5. /etc/bashrc
非交互式登录:
(1)su User
(2)图形界面打开的终端
(3)执行脚本
(4)执行其他的Bash实例
读取配置文件的顺序:
1. ~/.bashrc
2. /etc/bashrc
3. /etc/profile.d/*.sh
=======================================================
|
|
|