shell 括号的区别
$()
用于命令交换
  
里面会会执行命令,如果你写其他的:
  
会直接报错的
` `
也是用于命令交换的哦
  
和$() 的操作是一样的
${ }
用于变量替换
每次调用环境的时候是需要带一个${ } 但是不带也不会影响
  
这个定义了变量的范围,比较不容易出错
$[ ]
用于算术计算
里面出现的只有数字
  
但是你在里面输出其他非数字的就报错
  
$(()) 
 效果和$[ ] 差不多,两个都是计算的
 
 
[ ] 
  条件表达式
  为test命令的另一种形式,但要注意:
   1.必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错。
   2.test命令使用标准的数学比较符号来表示字符串的比较,而用文本符号来表示数值的比较。
3.大于符号或小于符号必须要转义,否则会被理解成重定向。
  
   
[[ ]]
①[[ ]]是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
(())
①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。
④常用于算术运算比较,双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。 只要括号中的表达式符合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 ]。
shell 括号的区别的更多相关文章
- C++中创建对象的时候加括号和不加括号的区别
		c++创建对象的语法有----- 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new My ... 
- include包含头文件的语句中,双引号和尖括号的区别
		include包含头文件的语句中,双引号和尖括号的区别 #include <>格式:引用标准库头文件,编译器从标准库目录开始搜索 #incluce ""格式:引用非 ... 
- Linux set、env、declare、export显示shell变量的区别
		目录 Linux中 set.env.declare.export显示shell变量的区别 1. shell局部变量 2. 用户的环境变量 显示shell变量 declare 命令 export 命令 ... 
- 【转】new对象时,类名后加括号和不加括号的区别
		请看测试代码: #include <iostream> using namespace std; // 空类 class empty { }; // 一个默认构造函数,一个自定义构造函数 ... 
- python中,花括号,中括号,小括号的区别
		python中,花括号,中括号,小括号的区别 Python主要有三种数据类型:字典.列表.元组.其分别由花括号,中括号,小括号表示. 如: 字典:dic={'a':12,'b':34} 列表:list ... 
- Python调用函数加括号和不加括号的区别
		Python调用函数加括号和不加括号的区别 # -*- coding: utf-8 -*- #!/usr/bin/env python # @Time : 2018/7/3 10:03 # @Desc ... 
- 函数基础重点掌握内容:创建函数、return返回单个值、return返回多个值、函数名加括号与不加括号的区别
		##比较两个数大小 #有参函数!!! def compare(s,t): if s > t: print(s) else: print(t) f=compare compare(1000,30) ... 
- C++中创建对象的时候加括号和不加括号的区别(转)
		c++创建对象的语法有----- 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new My ... 
- Python调用函数带括号和不带括号的区别
		1.不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不需等该函数执行完成 2.带括号(此时必须传入需要的参数),调用的是函数的return结果,需要等待函数执行完成的结果 如果函数本 ... 
随机推荐
- 第18章-使用WebSocket和STOMP实现消息功能
			Spring 4.0为WebSocket通信提供了支持,包括: 发送和接收消息的低层级API: 发送和接收消息的高级API: 用来发送消息的模板: 支持SockJS,用来解决浏览器端.服务器以及代理不 ... 
- 通过vb.net 和NPOI实现对excel的读操作
			通过vb.net 和NPOI实现对excel的读操作,很久很久前用过vb,这次朋友的代码是vb.net写的需要一个excel的操作, 就顾着着实现功能了,大家凑合着看吧 Option Explicit ... 
- Math对象的使用
			1. Math.floor() === 向下取整 2.Math.random() === 取一个浮点随机数 3.Math.round() === 四舍五入后一个最接近的整数 4.Math.ceil() ... 
- .net core MVC 通过 Filters 过滤器拦截请求及响应内容
			前提: 需要nuget Microsoft.Extensions.Logging.Log4Net.AspNetCore 2.2.6: Swashbuckle.AspNetCore 我暂时用的是 ... 
- 多态的作用-游戏编程展示------新标准c++程序设计
			游戏软件的开发最能体现面向对象设计方法的优势.游戏中的人物.道具.建筑物.场景等都是很直观的对象,游戏运行的过程就是这些对象相互作用的过程.每个对象都有自己的属性和方法,不同对象也可能有共同的属性和方 ... 
- Kylin -- Dup key found 问题
			kylin 构建 cube 时,抛出了如下的错误: org.apache.kylin.engine.mr.exception.HadoopShellException: java.lang.Runti ... 
- bzoj1070【SCOI2007】修车(费用流)
			题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待 ... 
- networkx如何将图写到邻接矩阵里?
			nx.write_adjlist(G1,graph_filename1)#生成的是二进制文件nx.write_adjlist(G2,graph_filename2) 
- Android--Apache HttpClient 的一些问题
			1,对于Android4.0之上的环境下,不能在主线程中访问网络 http://www.cnblogs.com/plokmju/p/Android_apacheHttpClient.html ... 
- 安装GCC-8.3.0及其依赖
			目录 目录 1 1. 前言 1 2. 安装日期 1 3. GCC国内镜像下载地址 2 4. GCC的依赖库 2 4.1. gmp库 2 4.2. mpfr库 2 4.3. mpc库 2 4.4. m4 ... 
