`

shell 编程中使用到得if语句内判断参数

阅读更多

注:记住常用的,其他的用得到就查一查,很好用.

 

     –b 当file存在并且是块文件时返回真

  -c 当file存在并且是字符文件时返回真

  -d 当pathname存在并且是一个目录时返回真

  -e 当pathname指定的文件或目录存在时返回真

  -f 当file存在并且是正规文件时返回真

  -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

  -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

  -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真

  -p 当file存在并且是命令管道时返回为真

  -r 当由pathname指定的文件或目录存在并且可读时返回为真

  -s 当file存在文件大小大于0时返回真

  -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真

  -w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

  -o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

 

 

UNIX Shell 里面比较字符写法:

  -eq   等于

  -ne    不等于

  -gt    大于

  -lt    小于

  -le    小于等于

  -ge   大于等于

  -z    空串

  =    两个字符相等

  !=    两个字符不等

  -n    非空串

 

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

 

更为详细的说明:

  运算符                     描述                          示例

  文件比较运算符

  -e filename     如果 filename 存在,则为真            [ -e /var/log/syslog ]

  -d filename     如果 filename 为目录,则为真          [ -d /tmp/mydir ]

  -f filename     如果 filename 为常规文件,则为真      [ -f /usr/bin/grep ]

  -L filename     如果 filename 为符号链接,则为真      [ -L /usr/bin/grep ]

  -r filename     如果 filename 可读,则为真            [ -r /var/log/syslog ]

  -w filename     如果 filename 可写,则为真            [ -w /var/mytmp.txt ]

  -x filename     如果 filename 可执行,则为真          [ -L /usr/bin/grep ]

  filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]

  filename1 -ot filename2   如果 filename1 比 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]

  字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)

 

  -z string               如果 string 长度为零,则为真               [ -z $myvar ]

  -n string                      如果 string 长度非零,则为真        [ -n $myvar ]

  string1 = string2         如果 string1 与 string2 相同,则为真     [ $myvar = one two three ]

  string1 != string2        如果 string1 与 string2 不同,则为真     [ $myvar != one two three ]

  算术比较运算符

  num1 -eq num2              等于         [ 3 -eq $mynum ]

  num1 -ne num2              不等于       [ 3 -ne $mynum ]

  num1 -lt num2               小于        [ 3 -lt $mynum ]

  num1 -le num2            小于或等于     [ 3 -le $mynum ]

  num1 -gt num2             大于          [ 3 -gt $mynum ]

  num1 -ge num2             大于或等于    [ 3 -ge $mynum ]

 

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

脚本示例:

  #!/bin/bash

  # This script prints a message about your weight if you give it your

  # weight in kilos and hight in centimeters.

  if [ ! $# == 2 ]; then

  echo "Usage: $0 weight_in_kilos length_in_centimeters"

  exit

  fi

  weight="$1"

  height="$2"

  idealweight=$[$height - 110]

  if [ $weight -le $idealweight ] ; then

  echo "You should eat a bit more fat."

  else

  echo "You should eat a bit more fruit."

  fi

  # weight.sh 70 150

  You should eat a bit more fruit.

  # weight.sh 70 150 33

  Usage: ./weight.sh weight_in_kilos length_in_centimeters

  位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字,

  第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示了怎么改变脚本,如果参数少于或者多余2个来打印出一条消息。

  执行,并查看情况。

  # bash -x tijian.sh 60 170

  + weight=60

  + height=170

  + idealweight=60

  + '[' 60 -le 60 ']'

  + echo 'You should eat a bit more fat.'

  You should eat a bit more fat.

  其中-x用来检查脚本的执行情况。

 

Form:http://hi.baidu.com/dandanfeng160/blog/item/ca8a7b631798876b0d33fa28.html

分享到:
评论

相关推荐

    linux shell编程if语句内判断参数详解

    linux shell编程if语句内判断参数详解 主要讲了 shll中if语句里可用参数,非常详细

    linux shell中if的各种判断

    shell编程中使用到得if语句内判断参数  –b当file存在并且是块文件时返回真  -c当file存在并且是字符文件时返回真  -d当pathname存在并且是一个目录时返回真  -e当pathname指定的文件或目录存在时返回真  -...

    Shell脚本中判断输入参数个数的方法

    $#代表了命令行的参数数量,可以看...shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定

    新版Linux Shell编程实训(全)20170518.docx

    7.1.1 if 判断语句 127 7.1.2 for 循环语句 130 7.1.3 while 循环语句 131 7.1.4 until 循环语句 134 7.1.5 case多选语句 135 7.1.6 跳出循环体 137 任务7.2 Shell案例:重复执行命令和简单计算器 139 任务7.3 Shell...

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    shell编程 创建shell脚本 ①创建第一个shell脚本②运行shell脚本shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句...

    LinuxShell编程

    Linux Shell编程基础知识 目 录1、 Shell简介1.1. 什么是shell1.2. shell分类2、 Shell语法2.1. 定义变量2.2. 变量类型2.2.1. 字符集变量2.2.2. 数字常量定义2.2.3. 数组2.2.4. 系统变量2.3. 运算符与表达式2.3.1. ...

    实验八 shell编程1

    2.位置参数和环境变量 3.Shell中的特殊字符 1. if 语句 if语句通过判断逻辑表达式来作出选择,在bash中的条件语句有如下的格式: if [ ex

    shell编程—-while和until循环

      condition表示判断条件,statements表示要执行的语句(可以只有一条,也可以有多条),do和done都是shell中的关键字。   while循环的执行流程为:先对condition进行判断,如果该条件成立,就进入循环,执行...

    Linux C程序设计大全

    2.5.2 使用goto语句实现switch语句 2.6 优化控制结构 2.6.1 表达式优化——使用替换程序中的乘除法 2.6.2 表达式优化——常量折叠 2.6.3 表达式优化——使用数学公式 2.6.4 表达式优化——存储问题 2.6.5 分支优化...

    入门学习Linux常用必会60个命令实例详解doc/txt

    上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh -l 命令,见图1所示。 图1 系统可以使用的Shell类型 从图1中可以...

    SOLARIS高级系统管理员指南

    10.2 在SAF中使用变量 119 10.2.1 端口监控程序标签 120 10.2.2 服务标签 120 10.2.3 设备路径 120 10.2.4 波特率和线路规范 121 10.2.5 调制解调器类型 121 10.2.6 注释 121 10.3 设置调制解调器 121 10.3.1 硬件...

    彩虹UDA软件狗工具带硬复制工具

    您可以在您程序中使用软件狗开发套件提供的加密接口对软件狗进行操作。 3.开发商工具(DogEdt32.EXE) 软件狗开发商工具可以使开发商方便地对软件狗存储区进行编辑、读取系列号以及连续初始化等操作。 工作原理:...

    vc++ 开发实例源码包

    服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。 CClockST_demo 电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 ...

    易语言程序免安装版下载

    操作系统界面功能支持库(shell.fne)中的“执行()”命令增加一个参数“窗口显示方式”,作用与核心库“运行()”命令的同名参数一致。 6. 数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写...

    vc++ 应用源码包_1

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    vc++ 应用源码包_2

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    vc++ 应用源码包_6

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

Global site tag (gtag.js) - Google Analytics