1、字符串判断

str1 = str2      当两个串有相同内容、长度时为真
str1 != str2      当串str1和str2不等时为真
-n str1        当串的长度大于0时为真(串非空)
-z str1        当串的长度为0时为真(空串)
str1           当串str1为非空时为真

 

2、数字的判断

int1 -eq int2    两数相等为真
int1 -ne int2    两数不等为真
int1 -gt int2    int1大于int2为真
int1 -ge int2    int1大于等于int2为真
int1 -lt int2    int1小于int2为真
int1 -le int2    int1小于等于int2为真

3 文件的判断

-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真

3、复杂逻辑判断

-a         与
-o        或
!        非

  下面是一些使用实例:

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"

#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi

#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi

#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi

#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi

#两个变量判断是否相等
if [ "$var1" == "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi

if list then
           do something here
       elif list then
           do another thing here
       else
         do something else here
       fi

EX1:

#!/bin/sh

SYSTEM=`uname -s`     #获取操作系统类型,我本地是linux

if [ $SYSTEM = "Linux" ] ; then     #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then   
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi     #ifend

基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。

=========================================================================

#. $HOME/.bash_profile
cd $HOME
sh .bash_profile
cd $HOME/jnjzapp/sos_dx/
echo -e '开始'
./jn_card_dx.sh
wait
#sqlplus $DBSTR <<START_A
#@jn_card_dx.sql
#/
#commit;
#exit;
#START_A
cd $HOME/jnjzapp/sos_dx/data/
if [ ! -d  BQMSG ]; then 
mkdir BQMSG 
fi 
#mkdir BQMSG
cd $HOME/jnjzapp/sos_dx/
sqlplus $DBSTR <<START
@sos.sql;
commit;
exit;
START
objdir=`date -d ' days' +%Y%m%d`
echo $objdir
#cp jn_card_sos.txt $objdir.txt

1、if 与[ 之间必须有空格

2、[ ]与判断条件之间也必须有空格

3、]与; 之间不能有空格

原文:http://cloudmail.iteye.com/blog/1441015

Linux系统Shell if语句用法小结相关推荐

  1. linux 系统 Shell语言 基础

    linux 系统 Shell语言 基础 第一章 Shell 编程 1 . 概述 ​ Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Sh ...

  2. Linux系统shell脚本之打印系统的IP信息

    Linux系统shell脚本基础之打印系统的IP信息 一.脚本要求 二.脚本内容 三.执行脚本 一.脚本要求 1.显示服务器的运行状态,并输出提示 2.输出电脑的IP地址等信息 3.将执行输出的信息记 ...

  3. Linux系统shell脚本之批量修改服务器密码

    Linux系统shell脚本之批量修改服务器密码 一.脚本要求 二.脚本内容 三.编辑原始旧密码 四.执行脚本 五.验证密码更改 1.查看更改后的密码文件 2.在远端服务器验证密码 一.脚本要求 可以 ...

  4. linux系统——Shell编程之变量解释

    linux系统--Shell编程之变量解释 - Shell能做什么 自动化批量系统初始化程序 (update,软件安装,时区设置,安全策略-) 自动化批量软件部署程序 (LAMP,LNMP,Tomca ...

  5. Linux系统shell脚本之函数的使用

    Linux系统shell脚本之函数的使用 一.函数解释 二.函数参数 1.参数注意事项 2.特殊参数说明 三.函数实例1 四.函数实例2 一.函数解释 1.函数(function)作用:函数可以在sh ...

  6. Linux系统Shell脚本中的echo命令

    Linux系统Shell脚本中的echo命令 echo的作用       输出字符串 格式                  echo  "字符串内容" 一,显示转义字符 转义字符 ...

  7. Linux系统shell脚本实战之解决生产ddos攻击

    Linux系统shell脚本实战之解决生产ddos攻击 一.脚本于鏊求 二.脚本内容 三.执行脚本 一.脚本于鏊求 要求屏蔽掉ddos攻击的IP 二.脚本内容 [root@192 scripts]# ...

  8. Linux系统中curl命令用法详解

    在Linux系统中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款强大的http命令行工具.它支持文件的上传和下载,是综合传输工具. curl 是常用的命令行工具,用来请求 Web 服 ...

  9. Linux系统中ls命令用法详解

    linux系统中ls命令的用法 ls命令是linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通 ...

最新文章

  1. python图像相似度识别_一个用SIFT特征比较图像相似度的python小程序
  2. java设计模式概述
  3. 【Scratch】青少年蓝桥杯_每日一题_6.01_画春花
  4. (转)VS2010 快捷键
  5. [CareerCup] 8.10 Implement a Hash Table 实现一个哈希表
  6. Spring Boot笔记-@ComponentScan初步解析
  7. Linux备份策略研究
  8. 相机标定(五)—— 相机模型详细介绍
  9. docker for windows pull镜像文件的安装位置改变方法
  10. 条码打印软件如何在二维码中间添加logo图片
  11. mfc9340扫描到文件服务器,兄弟MFC7340打印机怎么扫描文件?
  12. 电商收付通系列⑤,商户进件之二级商户进件申请
  13. UWB基本原理分析2
  14. 在家快发霉了?数据告诉你,网友们都怎么打发时间 | DT数说
  15. 企业邮箱登录入口,企业邮箱在哪登录?邮箱ssl安全吗?
  16. web的标准网页设计与php课后,web网页设计尺寸规范
  17. html实现展开余下全文多个,DIV+css内容太长,怎么实现点击展开余下全文?
  18. xml方式导出word优缺点:
  19. MySQL——临时表
  20. item_get - VVIC根据ID取商品详情 API

热门文章

  1. Webpack配置全解析(基础篇)
  2. char *c和char c[]区别
  3. 在 Notepad++ 运行 Closure Linter 来校验JS代码
  4. 阅读 《图解密码技术 第三版》的归纳和总结
  5. js:开启弹窗和关闭弹窗
  6. 使用pydicom读取dicom文件,并对文件做一些简单操作
  7. 机器人导航学习历程(一)简介
  8. 光学动作捕捉系统使用教程:刚体贴点说明
  9. 可信、安全、稳定构建金融科技新局面
  10. 查找、替换使用正则表达式