【shell】Linux shell中括号的用法

Linux shell中括号的用法

概述

    本文主要介绍Linux中括号的用法,主要包含判断文件和变量。
**注意事项**:中括号两边必须有空格。

使用中括号会涉及到的知识 &&、||

            在本文对文件或者变量做判断的时候,可能会多次使用到&&和||这两个符号,所以在我们进入中括号的学习之前首先了解一下这两个符号的作用。

            &&:并 --> 两真才为真,如果有两个条件,第一个为真,那么肯定会判断第二个条件;如果第一个条件为假,那么第二个条件将不会判断。(第一个为真,那么需要判断第二个条件才知道整体结果是否为真,如果第一个条件为假,那么无论第二个条件为真还是假,最终的结果都是假)

例1:
[ 假 ] && echo 1 最终结果无输出,因为第一个条件为假,后面的echo 0不会执行

例2:
[ 真 ] && echo 0 最终的结果为 0 ,因为一个条件为真,肯定会执行第二个条件。

            ||:且 -->一个为真即是真。如果第一个条件为真,那么不会判断第二个条件(因为一真即真),如果第一个条件为假,那么判断第二个条件(第二个条件如果为真还有机会使得整体的结果为真)

例3:
[ 真 ] || echo 0 # 最终结果无输出,因为第一个条件为真,echo 0 不会执行。

例4:
[ 假 ] || echo 0 #最终的结果输出0

小练习
[ 2 -eq 3 ] && echo 0
[ 2 -eq 3 ] || echo 1
最终输出的结果是?

结果是:1

&& 和 || 的综合使用

先看个小例子:
[ 2 -eq 3 ] && echo 0 || echo 1
最终结果:1
解释:如果 [ ] 的条件为真,那么执行echo 0,如果[ ]的条件为假,那么执行echo 1.

Linux 中括号运用之判断文件

常用参数:

-z:判断文件是否存在

例子:

[[email protected] ~]# [ -z adsfsfsdfs.txt ] && echo 0 || echo 1
1    # 最终结果为1 ,因为系统中没有存在ads...txt文件

-d:判断目录是否存在

例子:

[[email protected] ~]# [ -d /var/www ] && echo 0 || echo 1
0    #输出结果为0,因为系统中有/var/www这个目录

-x判断文件是否有执行(x)权限

例子:

[[email protected] ~]# [ -x a.txt ] && echo 0 || echo 1
1

Linux 中括号运用之判断变量

-n 判断变量值是否为空

[[email protected] ~]# [ -n $kfjksdfjl ] && echo 0 || echo 1
0    #变量为空,即为9

-eq 判断变量或参数是否相等

例子:

[ 1 -eq 1 ] && echo 0 || echo 1
0  # 1=1 so...

-ne 不等于

例子:

[ 1 -ne 2 ] && echo 0 || echo 1
0  # 1!=2

-gt 大于、-ge 大于等于

例子:

[[email protected] scripts]# [ 1 -gt 2 ] && echo 0 || echo 1
1

-lt 小于、-le 小于等于

[[email protected] scripts]# [ 1 -lt 2 ] && echo 0 || echo 1
0

双中括号运用

常见参数

=:等于

例子:

[[email protected] scripts]# [[ 1 = 2 ]] && echo 0 || echo 1
1

!= 不等于

例子:

[[email protected] scripts]# [[ 1 != 2 ]] && echo 0 || echo 1
0

以此类推,还有 >,<,<=,>=等参数,这里就不再一一写出来了。

版权:arppinging

原文地址:http://blog.51cto.com/xiaowangzai/2089183

时间: 2024-10-07 00:15:13

【shell】Linux shell中括号的用法的相关文章

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

【转】十分有用的linux shell学习总结

在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们 数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux Shell的系列博客就给予了我极大的帮助,然而在实际的使用中却发现,有的时候确实忘记了某个技术点或某个Shell命令的使用方式曾经在哪一篇博客中 予以了说明,所以不得不多次点击多篇博客,直到找到想要那篇的为止,鉴于此,为了方便我们每个人的查阅,这里特别给出了前十二篇系列博客的目录以供大家参 阅和查

Linux Shell常用技巧(目录)

Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html一. 特殊文件: /dev/null和/dev/tty二. 简单的命令跟踪三. 正则表达式基本语法描述四. 使用cut命令选定字段五. 计算行数.字数以及字符数六. 提取开头或结尾数行 Linux Shell常用技巧(二) http://www.cnblogs.com/stephen-liu74/archive/2011/1

Linux shell脚本中shift的用法说明

Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数: run.sh: #!/bin/bash while [ $# != 0 ];do echo "第一个参数为:$1,参数个数为:$#" shift done 输入如下命令运行:run.sh a b c d e f 结果显示如下: 第一个参数为:a

Linux shell ${}简单用法

转自:Linux shell ${}简单用法 为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt我们可以用 ${ } 分别替换获得不同的值:${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt${file#*.}:拿掉第一个 . 及其左边的字符串:fil

linux shell 的here document 用法 (cat &lt;&lt; EOF)

什么是Here Document Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter   Here Document Content delimiter 它的作用就是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数. 比如在终端中输入cat << EOF ,系统会提示继续进行输入,输入多行信息再输入EOF,中间输入的信息将会显示在

linux shell的here document用法

转载自: http://my.oschina.net/u/1032146/blog/146941 什么是Here Document?Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下cmd << delimiter  Here Document Contentdelimiter 其作用是将两个 delimiter 之间的内容(Here Document Content 部分) 传递给cmd 作为输入参数;比如在终端中输入cat <<

Linux shell break、continue、exit、return的用法

break.continue.exit.return一般用于控制循环的的走向 首先通过一个脚本说明 for ((i=1;i<5;i++ )) do if [ $i -eq 3 ] then #  break #  continue #  exit fi echo $i done echo OK 输出的结果 break的结果 1 2 OK continue的结果 1 2 4 OK exit的结果 1 2 由此可以说明 break n:n表示跳出循环的层数,如果省略n表示跳出整个循环 continu

Linux shell 正则表达式用法

1.“ \  ” 用法 用于关闭其后续字符的特殊含义,恢复字符的本身含义,如:\\ 表示字符 \ 2. “ . " 用法 匹配任意单个字符 3. " * " 用法 匹配任意字符,可以是单个,也可以是多个,和 ”.“ 字符的去吧是是否可以匹配多个任意字符 4. "^" 的用法 在行的起始处开始匹配紧接着的字符,如 ^6,匹配行的首字符为6的行. 5." $ " 的用法 和 “^” 用法相似,表示在行的结尾处开始匹配字符,如 6$,匹配行的