Shell中if的基本语法和常见判断用法_linux shell

if, for, while几乎是所有编程语言的关键字,在Shell编程中也不例外,其中if是使用频率最高的,由于Shell编程中不存在对象(Object)的概念,因此在if的比较判断中主要是对字符串、数字的值进行比较判断的:

一. if的基本语法

1.if与[之间要有空格
2.[]与判断条件之间也必须有空格
3.]与;之间不能有空格

二. 对字符串的判断

1.if [ str1=str2 ];then fi #当两个字符串相同时返回真
2.if [ str1!=str2 ];then fi #当两个字符串不相等时返回真
3.if [ -n str1 ];then fi #当字符串的长度大于0时返回真 (判断变量是否有值)
4.if [ -z str1 ];then fi #当字符串的长度为0时返回真

三. 对数字的判断

1.int1 -eq int2 #int1和int2相等
2.int1 -ne int2 #int1不相等int2
3.int1 -gt int2 #int1大于int2
4.int1 -ge int2 #int1大于等于int2
5.int1 -lt int2 #int1小于int2
6.int1 -le int2 #int1小于等于int2

四. 对文件属性的判断

1.-r file #用户可读为真
2.-w file #用户可写为真
3.-x file #用户可执行为真
4.-f file #文件存在且为正规文件为真
5.-d file #如果是存在目录为真
6.-c file #文件存在且为字符设备文件
7.-b file #文件存在且为块设备文件
8.-s file #文件大小为非0为真,可以判断文件是否为空
9.-e file #如果文件存在为真

五. 逻辑判断

1.-a #与
2.-o #或
3.! #非

时间: 2024-10-25 19:55:09

Shell中if的基本语法和常见判断用法_linux shell的相关文章

Shell中if的基本语法和常见判断用法

  这篇文章主要介绍了Shell中if的基本语法和常见判断用法,本文讲解了if的基本语法.对字符串的判断.对数字的判断.对文件属性的判断.逻辑判断等内容,需要的朋友可以参考下 if, for, while几乎是所有编程语言的关键字,在Shell编程中也不例外,其中if是使用频率最高的,由于Shell编程中不存在对象(Object)的概念,因此在if的比较判断中主要是对字符串.数字的值进行比较判断的: 一. if的基本语法 1.if与[之间要有空格 2.[]与判断条件之间也必须有空格 3.]与;之

Shell中获取脚本所在目录绝对路径的方法_linux shell

要得到正在执行的程序/脚本自身所存放的绝对路径,在 PHP 里面可以用 dirname(realpath(__FILE__)) : C# 则有 System.Windows.Forms.Application.StartupPath : java 似乎没有什么比较直接的方法,只能利用 CodeSource 来间接获取 .而在 linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取: 复制代码 代码如下: baseDirFor

awk中查看包含某两列字符的用法_linux shell

[root@localhost /root]# netstat -tunlp |awk '/137/;/138/{print}' udp 0 0 192.168.1.200:137 0.0.0.0:* 539/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 539/nmbd udp 0 0 192.168.1.200:138 0.0.0.0:* 539/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:*

C#中Finally的一个不太常见的用法

原文:C#中Finally的一个不太常见的用法 最近在看.net BCL 传送门 的源码. 在 System.Collections.Concurrent.ConcurrentQueue 中看到一段有意思的代码.注意这段代码是写在ConcurrentQueue这个用于并发中的队列. 注意,这是一个无锁队列的实现. try { } finally { newhigh = Interlocked.Increment(ref m_high); if (newhigh <= SEGMENT_SIZE -

shell脚本连接、读写、操作mysql数据库实例_linux shell

本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为xml或html文件, 并分析了核心语句.本文介绍的方法适用于PostgreSQL ,相对mysql而言,shell 中读写PostgreSQL会更简单些. 1. 连接mysql 数据库 shell中连接数据库的方法很简单,只需要指定用户名,密码,连接的数据库名称,然后通过重定向,输入mysql的语

简介Linux中cp和mv搭配{,}在shell当中的用法_linux shell

经常会在博客或者论坛看到类似下面的命令 大括号扩展  Brace expansion  {     }  shell   作用 cp /etc/httpd/httpd.{,.bakup} 或者是 mv resume{z,}.doc 那么,在uinx / linux  shell命令中是什么意思?起什么作用呢? {  } 并没有什么实际的含义,但是却可以作为Brace expansion(大括号扩展或叫做花括号扩展)而经常用于产生各种组个.以下是翻译自 GNU/BASH  man page  的内

shell 基本计算、逻辑运算、位运算详解_linux shell

以下面的格式提供运算表达式:$(( expression )) $ echo $((5*(3+3))) 30 $ result = $(($myvar-10)) shell提供方便的数之间的进制转换: $ echo $((013))#八进制 $ echo $((0xA4))#十六进制 还可以使用以下格式指定 2 到 64 之间的任意进制: $((BASE#NUMBER)) echo $((8#377)) echo $((16#D8)) 在 Shell 中进行进制转换的另一个诀窍是使用 bc, 它

Shell脚本编程之判断语句_linux shell

一.单分支if语句 格式:if 判断条件:then statement1 statement2 ... fi 二.双分支的if语句 格式:if 判断条件; then statement1 statement2 ... else statementN ... fi 使用一个以前用过的脚本来说明这个结构. 三.多分支if语句 格式:if 判断条件1:then statement1 ... elif 判断条件2; then statement2 ... elif 判断条件3; then stateme

linux shell数据重定向(输入重定向与输出重定向)详细分析_linux shell

在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error outp