在介绍小括号和大括号的用法及区别之前,我们先解释两个概念:父 Shell 和子 Shell。

在 Bash 中,是可以调用新的 Bash 的,比如:

[root@localhost ~]# bash

[root@localhost ~]#

这时,可以通过 pstree 命令査看一下进程数,命令如下:

[root@localhost ~]# pstree

init──┬──abrt-dump-oops

…省略部分输出

├─sshd──┬──sshd───bash───bash───pstree

…省略部分输出

可以看到我们的命令都是通过 ssh 远程服务链接的,在 ssh 中生成了第一个 Bash,就是父 Shell。因为我们刚刚执行了 Bash 命令,所以在第一个 Bash 中生成了第二个 Bash,这个 Bash 就是子 Shell,我们是在子 Shell 中运行命令 pstree 的。

关于父 Shell 和子 Shell,大家可以想象成在 Windows 中我们开启了一个"cmd"字符操作终端,那么 Windows 本身就是父 Shell,而"cmd"终端则是子 Shell;也可以理解为在一个操作界面中又开启了一个操作界面。

知道了父 Shell 和子 Shell,我们接着解释小括号和大括号的区别。如果用于一串命令的执行,那么小括号和大括号主要区别在于:

() 执行一串命令时,需要重新开启一个子 Shell 来执行。

{} 执行一串命令时,在当前 Shell 中执行。

() 和 {} 都是把一串命令放田括号里面,并且命令之间用";"隔开。

() 最后一条命令可以不用分号。

{} 最后一条命令要用分号。

{} 的第一条命令和左括号之间必须有一个空格。

() 里的各命令不必和括号有空格。

() 和 {} 中括号里面的某条命令的重定向只影响该命令,但括号外的重定向则会影响到括号里的所有命令。

下面举几个例子。

[root@localhost ~]# name=sc #在父 Shell 中定义 name 的值是 sc

[root@localhost ~]# (name=liming;echo $name)

liming

#如果用()括起来一串命令,那么这些命令都可以执行

#给name变量重新赋值,但是这个值只在子Shell中

[root@localhost ~]# echo $name

sc

#父Shell中name的值还是sc,而不是liming

[root@localhost ~]#{ name=liming;echo $name;} liming

#但是用大括号来进行一串命令的执行时,name变量的修改是直接在父Shell中进行的

#注意大括号的格式

[root@localhost ~]# echo $name

liming

#name变量的值已经被修改了

其实在执行一串命令时,如果使用的是小括号,则这串命令所做的修改只在子 Shell 中生效,一旦命令执行结束,回到父 Shell 中,这个修改就会丟失;而如果使用的是大括号,则此串命令直接在父 Shell 中执行,命令执行结束后,修改依然会生效。

matlab 大括号用法,Shell(Bash)小括号和大括号用法及区别相关推荐

  1. linux中shell的小括号、大括号的用法区别

    Linux中小括号()和大括号{}都是对其中的一串命令进行执行,但有一定的区别,其区别如下: 1 小括号() ①命令组.括号中的命令新开一个子shell程序,括号中的变量为本地变量 ,不能够在脚本其他 ...

  2. Linux之shell中的大括号、中括号、小括号的使用详解+多示例

    摘要:很多人和我一样对于shell的各种括号的各种用法肯定不是很清楚,有时候看见别人脚本都不知道是什么意思,今天就来说说bash中的大中小括号的用法和解释,本人常用bash所以也只能用bash来说明了 ...

  3. shell中的小括号与大括号

    小括号与大括号中变量的区别: 小括号中的变量命令会在子shell中运行,所以运行后的值不会影响主shell中变量:大括号不会重启一个子shell. 转载于:https://www.cnblogs.co ...

  4. Linux脚本 括号,linux shell取小括号()、中括号[]、大括号{}等里的内容

    linux shell取小括号()之内的内容 [root@localhost ~]# var="aaa(boot)bbbsdl(grub)fjjkdsjk(good)aadsff" ...

  5. javascript正则表达式大括号、中括号、小括号的作用以及应用场景

    在JavaScript正则表达式中,大括号 {}.中括号 [] 和小括号 () 都有不同的作用和应用场景. 大括号 {} 在正则表达式中,大括号 {} 表示重复次数.以下是一些常见的应用场景: {n} ...

  6. Shell最全大括号{}、中括号[]、小括号()用法实例

    1.大括号{ }用法实例 1)纯{ }用法 拓展功能:例如:ls {name1,name2}.sh :touch {1..3}.sh 代码组织功能:例如:多条命令在当前shell中执行 { cmd1; ...

  7. shell中的括号(小括号,大括号/花括号)

    在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var}  2.$(cmd)  3.()和{}  4.${var:-string},${var:+str ...

  8. shell中的括号(小括号,大括号/花括号)的使用方法

    在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var}  2.$(cmd)  3.()和{}  4.${var:-string},${var:+str ...

  9. 2021-03-15 scala map 小括号与大括号

    spark编程的时候的时候看到这样的一个用法: 作为接触scala两天半的我有些看不明白了.好一番搜索看到这样的答案: 下面的问题,表面上看是小括号与花括号的问题. // map方法这样写不能编译通过 ...

  10. java 正则表达式 大括号_正则表达式:小括号、中括号、大括号的区别

    一.小括号().中括号[].大括号的区别 1>. 小括号():匹配小括号内的字符串,可以是一个,也可以是多个,常跟"|"(或)符号搭配使用,是多选结构的 示例1:string ...

最新文章

  1. Java虚拟机中获得Runtime实例的方法是什么?
  2. 80客团队博客建设的思路
  3. 多个asp.net程序共用Session(sso程序的外设接口)
  4. 个人成长:2021年7月记
  5. C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
  6. Mybatis框架(待完善)
  7. 详细解读css中的浮动以及清除浮动的方法
  8. 2005年博客发展十大悬疑
  9. java控制面板作用_大师为你分析win7系统打开java控制面板的方法
  10. Oracle IMP数据时报20001错误
  11. [转载]Windows 2012 R2安装SharePoint 2013 手动安装工具软件
  12. spring boot 尚桂谷学习笔记07 嵌入式容器 ---Web
  13. audio语音相关的基础知识-VAD,ASR,AEC,AGC,BF等
  14. 对项目管理和软件开发过程的感受和理解
  15. 偏心率计算公式matlab,结构计算整体指标(3)——扭转位移比及楼层偏心率
  16. java cnzz_cnzz 模拟请求登录(传入url get data ) demo
  17. 全民社会保障月供制度的客观理由
  18. 基于Domoticz智能家居系统(十四)用ESP8266做MQTT客户端实验
  19. 视频文件转换器有哪些?什么视频文件转换器好用?
  20. 天津市人民优步Uber司机奖励政策(9月14日~9月20日)

热门文章

  1. 如何防止mysql删库_数据库如何防止程序员删库到跑路
  2. iphone捷径未能连接服务器,ios13无法安装第三方捷径怎么办 不允许不受信任的快捷指令解决方法...
  3. 基于c语言实现的TCP连网斗地主程序(一)
  4. 加速计(重力感应功能)的使用
  5. windows如何设置软件开机启动
  6. 如何用计算机控制三相电机,计算机控制 课程设计 三相步进电机控制.docx
  7. 戴尔电脑开机卡logo无法开机问题及解决办法
  8. 对打字练的小键人的网站91xjr.com站资源打包,gulp独立分文件夹打包
  9. NumPy学习笔记21. IO
  10. mac桌面存在顽固文件无法删除?怎么办?