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 ].
相关推荐
本文将详细介绍 Shell 中各种括号的作用,包括小括号、双小括号、中括号、双中括号和大括号等。 一、小括号() 小括号的主要作用是用于命令组和命令替换。命令组的作用是将多个命令组合在一起,形成一个新的命令...
在Shell脚本编程中,大括号({})扮演着至关重要的角色,它们被广泛用于各种语法结构和操作。下面将详细介绍大括号在Shell中的主要用途。 1. **数组定义**:在Shell中,大括号用于定义数组。例如,创建一个包含三个...
Shell括号在脚本编写中扮演着重要的角色,了解它们的不同用途可以帮助开发者更好地控制脚本的行为。无论是变量扩展、命令替换、流程控制还是数学运算,正确使用括号可以大大提高脚本的效率和灵活性。希望本文的内容...
在Shell脚本编程中,括号有着特殊的意义和作用,主要分为五种类型:小括号()、双小括号(())、中括号([])、双中括号([[]])以及大括号({})。下面将详细介绍每一种括号的作用。 1. **小括号()** - 命令组:圆...
括号中的命令可以通过分号进行分隔,最后一个命令后的分号可省略,且括号与命令之间无需留有空格。 示例: ```bash (echo "command 1"; echo "command 2") ``` - **命令替换**:`$(cmd)` 或者 `cmd` 的形式...
由于提供的文件内容中存在大量重复的网址,没有提供实质性的学习内容,因此以下知识点将基于标题和描述中提到的“shell脚本学习指南”来展开。 Shell脚本是操作系统中的一个强大工具,它允许用户通过编写一系列的...
* Shell 数组可以使用括号来定义 Shell echo 命令: * Shell echo 命令是指在 Shell 中输出字符串的命令 * Shell echo 命令可以使用 -n 选项来实现不换行 Shell printf 命令: * Shell printf 命令是指在 ...
brackets-shell, 基于CEF3的括号应用 shell 概述这是用于括号的CEF3-based应用...请阅读括号 repo 中的主自述文件,了解关于括号的一般信息。如果你对这个 shell 感兴趣,请在 brackets-dev Google或者在freenode的 #b
在Shell脚本中,使用export命令可以将变量导出为全局变量,使之在子Shell中也能访问: ```shell export VARIABLE_NAME=value ``` 或者 ```shell declare -x VARIABLE_NAME=value ``` 五、Shell字符串操作 Shell字符...
7. 圆括号()与花括号{}的区别:在Shell中,圆括号用于命令替换和命令分组执行。命令替换是将命令输出的结果赋值给变量或作为其他命令的输入;命令分组则允许将多个命令作为一个单元执行。花括号在Shell中有多种用途...
* 使用花括号来告诉 shell 我们要打印的是哪个变量: `echo "this is the ${num}nd"` 1.1.4 环境变量 * 环境变量是由 `export` 关键字处理过的变量 * 通常情况下仅仅在登录脚本中使用环境变量 1.1.5 Shell 命令和...
Shell编程是一种在Linux和Unix操作系统中广泛使用的命令行脚本语言,它允许用户自定义复杂的自动化任务。在本文中,我们将深入探讨几个中级Shell编程实例,涵盖if判断语句、case分支语句、for循环、while循环以及...
在Shell中,可以使用大括号`{}`来组合多个命令,使其在同一个Shell环境中依次执行。例如: ```shell { cmd1; cmd2; cmd3; } ``` 这种方式称为命令组,命令组中的命令实际上是在当前Shell环境中执行的。 当命令组...
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中,可以定义函数来封装一系列命令,提高代码的复用性和可读性。函数的基本结构如下: ```bash function fun_name() { # 函数体 } ``` 调用函数只需使用函数名即可,无需括号,如`fun_name`。 #### 管道...
圆括号`()`用于子shell,命令会被在一个临时的子Shell环境中执行,对当前Shell环境无影响。例如,`(command1; command2)`会先执行`command1`,然后执行`command2`。大括号`{}`则用于命令组,它不会创建子Shell,而是...