bash是一些基本的命令组成,要想学好bash脚本,基本命令是必须要记住

红色标记为着重点

1执行命令,利用状态返回值来判断

0 : 成功

1-255:失败

2: 测试表达式

[  expression ]  常用

[[ exprseeion ]]

bash 的测试类型

字符串字型    文件字型

测试数值:比较大小

-eq  : 是否等于 [ $1  -eq  $2 ]

-ne :  是否不等于 [ $1 -ne  $2]

-gt :  是否大于 [ $1 -gt $2 ]

-ge :  是否大于等于[ $1 -ge $2 ]

-lt :  是否小于  [ $1  -lt $2 ]

-le : 是否小于等于 [ $1 -le $2 ]

字符串测试。字符串比较

==: 是否等于

> :是否大于

< : 是否小于

! = :是否不等于

=~: 左侧字符串的字符能够被右侧的pattern所匹配

-z " string"  判断指定的字符串是否为空。空则为真,不空则假

-n "string" 判断指定的字符串是否为不空。不空则为真,不空为假

注意:

(1) 字符串要加引号

(2) 在作字符串的比较的时候,格式如下:

if [ "$VARIABLE" == "$VARIABLE"  -a   "$VATIABLE" == "CPU" ];then    需要在运算符号两边有空格 ,并且使用双引号将字符串包裹起来,这样即使是变量也可以替换

文件测试

存在性测试
    -a file   //a -a b (:和)  
    -e file  //检测存在性
    文件的存在性测试,存在为真,否则为假

文件类型测试
    -b file:是否存在并且为块设备文件
    -c file:是否存在并且为字符设备文件
    -d file:是否存在并且为目录文件
    -f file:是否存在并且为普通文件
    -h/l file:是否存在并且为符号链接文件
    -p file:是否存在并且为管道文件
    -S file:是否存在并且为套接字文件

文件权限测试
    -r file:是否存在并且为当前用户可读
    -w file:是否存在并且为当前用户可写
    -x file:是否存在并且为当前用户可执行

特殊权限测试
    -u file:是否存在并且为拥有SUID权限
    -g file:是否存在并且为拥有GUID权限
    -k file:是否存在并且为拥有Sticky权限

文件是否有内容
    -s file:是否存在并且有内容

变量是否有为空,为空则为真
    -z ""$VARIABLE"

文件的时间戳测试
    -N file:文件自从上次被读取后是否修改过

从属关系测试
    -O file:当前用户是否为文件的属主
    -G file:当前用户是否属于文件的属组

双目测试
    file1 -ef file2:是否为同一文件系统上的指向同一iNode的硬链接
    file1 -nt file2:file1 是否新于file2
    file1 -ot file2:file1 是否旧于file2

组合条件测试

特殊变量

$0:脚本文件路径名称本身
$#:保存了脚本参数的个数
$*:所有参数
$@:所有参数

最新文章

  1. sgu 240 Runaway (spfa)
  2. ASP.Net开发基础温故知新学习笔记
  3. freebsd启动报错:My unqualified host name unkown...Sleeping for retry.
  4. redsocks 将socks代理转换成全局代理
  5. 【转】NVelocity模板引擎初学总结
  6. socket网络间通信初识
  7. shell循环
  8. 【Spring】Spring框架之Struts2和Spring的优点
  9. 20150604_Andriod 窗体PopupWindow
  10. Objective-C:Foundation框架-常用类-NSMutableDictionary
  11. Python 以指定概率获取元素
  12. 控件如何在IDE中响应MouseDown事件
  13. eclipse中的web-inf下没有web.xml
  14. $.Event 你不知道的用法
  15. HDU1087:Super Jumping! Jumping! Jumping!(DP)
  16. 孙鑫HTML视频学习总结
  17. ClassLoader类加载解惑
  18. 深入浅出 JVM GC(4)常用 GC 参数介绍
  19. Java_6 方法
  20. tomcat 性能调优

热门文章

  1. STM32 Startup**.s文件中使用的 __main C函数入口
  2. Python爬虫系列 - 初探:爬取旅游评论
  3. git提交代码速度过慢解决方法(macos)
  4. golang 项目实战简明指南
  5. leetcode记录-字符串转整数
  6. vs2013发布网站合并程序是出错(ILmerge.merge:error)
  7. 20155204 2016-2017-2 《Java程序设计》第2周学习总结
  8. 前后端分离之JWT用户认证zf
  9. 用 GSL 求解超定方程组及矩阵的奇异值分解(SVD)
  10. [vijos1067]Warcraft III 守望者的烦恼