文件比较允许你测试Linux 文件系统上文件和目录的状态
比较 | 描述 |
-d file | 检查file是否存在并是一个目录 |
-e file | 检查file是否存在 |
-f file | 检查file是否存在并是一个文件 |
-r file | 检查file是否存在并可读 |
-s file | 检查file是否存在并非空 |
-w file | 检查file是否存在并可写 |
-x file | 检查file是否存在并可执行 |
-O file | 检查file是否存在并属当前用户所有 |
-G file | 检查file是否存在并且默认组与当前用户相同 |
file1 -nt file2 | 检查file1 是否比file2 新 |
file1 -ot file2 | 检查file1 是否比file2 旧 |
jump_directory=/home/wa/
if [-d $jump_directory]
then
如果jump_directory存在并是一个目录,那么then 后面的命令将会被执行
符合条件测试
if -then 语句允许你使用布尔逻辑来组合测试,有两种布尔运算可用
[condition1] &&[condition2] 两个条件都满足,then 部分的代码才会执行
[condition1] || [condition2] 只要满足一个条件,then 部分的代码就会被执行
if -then的高级特性
bash shell提供了两项可以在if -then 语句中使用的高级特性:
- 用于数学表达式的双括号
- 用于高级字符串处理功能的双方括号
使用双括号
符号 | 描述 |
var++ | 后增 |
var-- | 后减 |
++var | 先增 |
--var | 先减 |
! | 逻辑求反 |
~ | 位求反 |
** | 幂运算 |
<< | 左位移 |
>> | 右位移 |
& | 位布尔和 |
| | 位布尔或 |
&& | 逻辑和 |
|| | 逻辑或 |
var1=10
if (($var1**2>90))
then
((var2=$var1*2))