`

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

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

  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所指定的用户拥有时返回真。

   -z 用于判断表达式的值是否为空字符串。



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用来检查脚本的执行情况。
分享到:
评论

相关推荐

    Linux Shell编程.

    ### Linux Shell编程知识点详解 #### 一、Shell编程概述 **Shell** 在 Unix/Linux 系统中扮演着极其重要的角色,既是用户与操作系统交互的主要接口,也是一种强大的编程语言。通过 Shell 编程,用户不仅可以自动化...

    Linux SHELL编程指南

    《深入解析Linux Shell编程:构建、执行与技巧详解》 在深入探讨Linux Shell编程之前,我们首先需要理解Shell编程的基本概念及其重要性。Shell编程,尤其是对于Linux操作系统而言,是一种强大的自动化工具,允许...

    linux shell 编程(1)

    Linux Shell编程是Linux系统管理与自动化任务的核心技术之一,它为用户提供了与操作系统交互的命令行界面,并允许编写脚本来执行一系列操作。本篇将详细探讨Linux Shell编程的基础概念、重要命令以及如何编写简单的...

    Linux if语句详解

    在Linux shell编程中,`if`语句是用于条件判断的关键结构,它允许根据特定条件执行不同的代码块。本文将详细解析Linux中的`if`语句,并提供相关的使用示例。 `if`语句的基本语法如下: ```bash if condition then ...

    linux shell编程入门

    ### Linux Shell编程入门知识点 #### 一、Shell概念与作用 - **定义**:Shell作为用户与Linux操作系统之间的重要交互工具,它不仅是一款用C语言编写的程序,更是连接用户和系统的桥梁。用户可以通过Shell输入命令...

    Linux 系统shell编程

    Linux系统中的Shell编程是一种强大的工具,它允许用户与操作系统进行交互,执行命令,自动化任务,以及编写复杂的脚本来实现各种功能。"shell编程"这个标签表明我们要深入理解Shell的编程概念。 首先,让我们来谈谈...

    Linux与UNIX+Shell编程指南

    **Linux与UNIX Shell编程指南** Linux和UNIX操作系统是两种广泛使用的开源操作系统,它们在服务器、嵌入式系统和开发环境中尤为常见。Unix是最早的多用户、多任务操作系统之一,而Linux则是其开源版本,遵循GNU/GPL...

    Linux下Shell编程

    【Linux下Shell编程】是关于如何在Linux操作系统中使用Shell进行程序设计的教程。Shell,作为用户与操作系统内核之间的接口,它的主要作用是解析用户的命令并传递给内核执行。在Linux系统中,常见的Shell类型包括...

    linux shell

    Linux Shell编程是Linux系统中一个极其重要的组成部分,它充当了用户与操作系统内核之间的接口,允许用户通过命令行与系统进行交互。Shell不仅提供了一系列内置命令,还支持编写脚本,使得复杂的自动化任务变得可能...

    shell编程资料

    Shell编程是Linux或Unix系统中的一种脚本语言,它允许用户通过命令行接口执行一系列操作。这个"shell编程资料"涵盖了基础概念、控制语句、函数以及正则表达式等核心主题,这些都是编写高效shell脚本所必须掌握的知识...

    Shell编程指南

    - 例如,使用if语句来判断文件是否存在,然后执行相应的操作。 4. **循环控制**: - Shell支持`for`、`while`和`until`等多种循环结构。 - 例如,使用for循环遍历文件列表,或者while循环进行计数。 ### Shell...

    linux shell脚本攻略

    ### Linux Shell脚本攻略知识点详解 #### 一、Shell脚本基础 1. **Shell简介**: - **定义**:Shell是用户与Linux操作系统之间的交互界面。 - **功能**:执行命令、处理文件、运行程序等。 - **种类**:Bash、...

    Linux实验九 shell编程实验(2)

    可以通过`read`命令读取用户输入的成绩,然后使用`if`条件语句判断成绩范围,并输出相应的等级。例如,成绩小于60分时输出“not pass”,成绩介于60到70分之间时输出“D”等。 ### 总结 通过这次实验,同学们不仅...

    shell编程.pdf

    ### Shell编程知识点详解 #### 一、Shell编程概述 **Shell**是一种计算机操作系统中的命令解释器,也是用户与操作系统交互的主要方式之一。Shell脚本则是通过编写一系列命令和控制结构来自动化复杂的任务处理过程...

    Linux Shell 脚本编程 100 例

    Linux Shell脚本编程是Linux系统管理中的重要技能,它允许用户通过编写命令行脚本来自动化日常任务,提高工作效率。Shell脚本集成了许多强大的功能,包括文件操作、进程控制、条件判断、循环逻辑等。本资源"Linux ...

    shell编程和unix命令

    Shell编程和Unix命令是Linux和Unix操作系统中至关重要的部分,它们构成了系统管理和自动化任务的核心工具。Shell是一种命令行解释器,允许用户通过文本输入来执行系统操作,而Unix命令则是预定义的一系列程序,用于...

    LINUX与UNIX SHELL编程指南

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中Shell编程的权威教程。Shell作为操作系统与用户交互的重要工具,是系统管理员和程序员日常工作中不可或缺的一部分。本书全面覆盖了Shell脚本编写的...

    LINUX与UNIX SHELL编程指南-2

    《LINUX与UNIX SHELL编程指南》是一本深入解析Linux和Unix Shell编程的权威书籍,旨在帮助读者理解和掌握这两种操作系统中的Shell编程技术。Shell作为Linux和Unix系统中的命令解释器,是用户与操作系统交互的重要...

Global site tag (gtag.js) - Google Analytics