`

shell中的括号 () (()) [] [[]] {}

阅读更多

MARK

//TODO 待验证

http://www.cnblogs.com/gx-303841541/archive/2012/10/25/2740191.html

 

//GOOD 括号 四则运算以及逻辑运算

http://www.cnblogs.com/gx-303841541/archive/2012/10/25/2740195.html

http://hi.baidu.com/linuxj/item/74fa74ffa5d0e8b131c199b6

http://www.cnblogs.com/gx-303841541/archive/2012/10/25/2740324.html

 

http://longzxr.blog.sohu.com/236691585.html(后半部分)

 

 //TODO 验证

有了双括号运算符:[[]],[],test 逻辑运算,已经let,expr 都可以抛到一边了。

(()) 扩展了 扩展四则运算,逻辑原酸,扩展流程控制语句(逻辑关系式)

参见http://www.cnblogs.com/chengmo/archive/2010/10/19/1855577.html

http://www.cnblogs.com/gx-303841541/archive/2012/10/25/2740324.html

 

 

 

 

 

 

shell中括号的特殊用法

Shell中的括号有其特殊的用法, 现总结如下:
1. 符号$后的括号
${a} 变量a的值, 在不引起歧义的情况下可以省略大括号.
$(cmd) 命令替换, 结果为shell命令cmd的输出, 和`cmd`效果相同, 不过某些Shell版本不支持$()形式的命令替换, 如tcsh.
$((exp)) 和`expr exp`效果相同, 计算数学表达式exp的数值, 其中exp只要符合C语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算.

2. 多条命令执行

(cmd1;cmd2;cmd3) 新开一个子shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没有分号.
{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开.
对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令.

3. 双括号的特殊用法

(()) 增强括号的用法, 常用于算术运算比较. 双括号中的变量可以不使用$符号前缀, 只要括号中的表达式符合C语言运算规则, 支持多个表达式用逗号分开.
比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in `seq 0 4`或者for i in {0..4}.
再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ].
[[]] 增强方括号用法, 常用于字符串的比较. 主要用于条件测试, 双括号中的表达式可以使用&&, ||, <, >等C语言语法.
比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ].

  • 大小: 28.9 KB
分享到:
评论

相关推荐

    一文读懂 Shell 中各种括号的作用.doc

    本文将详细介绍 Shell 中各种括号的作用,包括小括号、双小括号、中括号、双中括号和大括号等。 一、小括号() 小括号的主要作用是用于命令组和命令替换。命令组的作用是将多个命令组合在一起,形成一个新的命令...

    大括号在shell中的使用

    在Shell脚本编程中,大括号({})扮演着至关重要的角色,它们被广泛用于各种语法结构和操作。下面将详细介绍大括号在Shell中的主要用途。 1. **数组定义**:在Shell中,大括号用于定义数组。例如,创建一个包含三个...

    shell括号

    Shell括号在脚本编写中扮演着重要的角色,了解它们的不同用途可以帮助开发者更好地控制脚本的行为。无论是变量扩展、命令替换、流程控制还是数学运算,正确使用括号可以大大提高脚本的效率和灵活性。希望本文的内容...

    shell中各种括号的作用详解()、(())、[]、[[]]、{}(推荐)

    在Shell脚本编程中,括号有着特殊的意义和作用,主要分为五种类型:小括号()、双小括号(())、中括号([])、双中括号([[]])以及大括号({})。下面将详细介绍每一种括号的作用。 1. **小括号()** - 命令组:圆...

    shell 脚本各种括号的用途.docx

    括号中的命令可以通过分号进行分隔,最后一个命令后的分号可省略,且括号与命令之间无需留有空格。 示例: ```bash (echo "command 1"; echo "command 2") ``` - **命令替换**:`$(cmd)` 或者 `cmd` 的形式...

    shell脚本学习指南中文

    由于提供的文件内容中存在大量重复的网址,没有提供实质性的学习内容,因此以下知识点将基于标题和描述中提到的“shell脚本学习指南”来展开。 Shell脚本是操作系统中的一个强大工具,它允许用户通过编写一系列的...

    shell脚本语言.pdf

    * Shell 数组可以使用括号来定义 Shell echo 命令: * Shell echo 命令是指在 Shell 中输出字符串的命令 * Shell echo 命令可以使用 -n 选项来实现不换行 Shell printf 命令: * Shell printf 命令是指在 ...

    brackets-shell, 基于CEF3的括号应用 shell.zip

    brackets-shell, 基于CEF3的括号应用 shell 概述这是用于括号的CEF3-based应用...请阅读括号 repo 中的主自述文件,了解关于括号的一般信息。如果你对这个 shell 感兴趣,请在 brackets-dev Google或者在freenode的 #b

    shell与python文档

    在Shell脚本中,使用export命令可以将变量导出为全局变量,使之在子Shell中也能访问: ```shell export VARIABLE_NAME=value ``` 或者 ```shell declare -x VARIABLE_NAME=value ``` 五、Shell字符串操作 Shell字符...

    学习shell的13个难点

    7. 圆括号()与花括号{}的区别:在Shell中,圆括号用于命令替换和命令分组执行。命令替换是将命令输出的结果赋值给变量或作为其他命令的输入;命令分组则允许将多个命令作为一个单元执行。花括号在Shell中有多种用途...

    Linux-shell脚本全面学习.pdf

    * 使用花括号来告诉 shell 我们要打印的是哪个变量: `echo "this is the ${num}nd"` 1.1.4 环境变量 * 环境变量是由 `export` 关键字处理过的变量 * 通常情况下仅仅在登录脚本中使用环境变量 1.1.5 Shell 命令和...

    shell编程中级实例

    Shell编程是一种在Linux和Unix操作系统中广泛使用的命令行脚本语言,它允许用户自定义复杂的自动化任务。在本文中,我们将深入探讨几个中级Shell编程实例,涵盖if判断语句、case分支语句、for循环、while循环以及...

    shell图形化总结

    在Shell中,可以使用大括号`{}`来组合多个命令,使其在同一个Shell环境中依次执行。例如: ```shell { cmd1; cmd2; cmd3; } ``` 这种方式称为命令组,命令组中的命令实际上是在当前Shell环境中执行的。 当命令组...

    LinuxShell编程基础教程.pdf

    echo "this is the $numnd",这将不会输出"this is the 2nd",而是输出"this is the ",因为 Shell 会去搜索变量 numnd 的值,可以使用花括号来告诉 Shell 我们要打印的是 num 变量,例如:echo "this is the ${num...

    shell十三问

    圆括号()用于创建子shell,其中的命令会在一个新的shell环境中执行;花括号{}则在当前shell环境下执行命令,常用于命令组的分隔。 八、$(( )), $( )与${ }的区分 $(( ))用于算术表达式求值;$( )用于命令替换,执行...

    shell cat read tee

    圆括号`()`用于子shell,命令会被在一个临时的子Shell环境中执行,对当前Shell环境无影响。例如,`(command1; command2)`会先执行`command1`,然后执行`command2`。大括号`{}`则用于命令组,它不会创建子Shell,而是...

Global site tag (gtag.js) - Google Analytics