bash 5.2中文修订5

2024-01-28 11:44
文章标签 中文 bash 5.2 修订

本文主要是介绍bash 5.2中文修订5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Grouping Commands 命令分组

Bash 提供两种方法将要执行的命令列表分组为一个单元。当命令被分组时,重定向可以应用于整个命令列表。例如,列表中所有命令的输出可以被重定向到单个流。

() 圆括号命令分组

( list )

将命令列表放在括号之间会强制 shell 创建一个子 shell(请参阅 Command Execution Environment ),并且 list 中的每个命令都在该子 shell 环境中执行。由于 list 在子 shell 中执行,因此在子 shell 完成后变量分配不会保持有效。

{} 花括号命令分组

{ list; }

将命令列表放在大括号之间会导致该列表在当前 shell 上下文中执行。不会创建子shell。 list 后面需要有分号(或换行符)。

除了创建子 shell 之外,由于历史原因,这两种结构之间还存在细微的差异。大括号是保留字,因此必须用空白符( blank )或其他 shell 元字符将它们与 list 分隔开。括号是运算符,即使它们没有通过空格与 list 分隔,也会被 shell 识别为单独的标记。

这两个构造的退出状态都是 list 的退出状态。

Coprocesses 协程

coprocess 是前面带有 coproc 保留字的 shell 命令。协进程在子 shell 中异步执行,就好像命令已用 ’ 终止&’ 控制操作符,在执行 shell 和协进程之间建立双向管道。

协进程的语法是:

coproc [NAME] command [redirections]
这将创建一个名为 NAME 的协进程。 command 可以是简单命令(请参阅 Simple Commands )或复合命令(请参阅 Compound Commands )。 NAME 是 shell 变量名。如果未提供 NAME ,则默认名称为 COPROC 。

用于协进程的推荐形式是

coproc NAME { command; }
建议使用这种形式,因为简单的命令会导致协进程始终被命名为 COPROC ,并且它比其他复合命令更易于使用且更完整。

还有其他形式的协进程:

coproc NAME compound-command
coproc compound-command
coproc simple-command
如果 command 是复合命令,则 NAME 是可选的。 coproc 后面的字决定该字是否被解释为变量名:如果它不是引入复合命令的保留字,则被解释为 NAME 。如果 command 是简单命令,则不允许使用 NAME ;这是为了避免 NAME 和简单命令的第一个字之间的混淆。

当执行协进程时,shell 在执行 shell 的上下文中创建一个名为 NAME 的数组变量(请参阅 Arrays )。 command 的标准输出通过管道连接到执行 shell 中的文件描述符,并且该文件描述符被分配给 NAME [0]。 command 的标准输入通过管道连接到执行 shell 中的文件描述符,并且该文件描述符被分配给 NAME [1]。该管道是在命令指定的任何重定向之前建立的(请参阅 Redirections )。文件描述符可以用作 shell 命令的参数以及使用标准字扩展的重定向。除了为执行命令和进程替换而创建的文件描述符之外,文件描述符在子 shell 中不可用。

为执行协进程而生成的 shell 的进程 ID 可用作变量 NAME_PID 的值。 wait 内置命令可用于等待协进程终止。

由于协进程是作为异步命令创建的,因此 coproc 命令始终返回成功。协进程的返回状态是 command 的退出状态。

GNU Parallel 并行

有一些并行运行命令的方法没有内置在 Bash 中。GNU Parallel 就是一个可以做到这一点的工具。

GNU Parallel,顾名思义,可用于并行构建和运行命令。您可以使用不同的参数运行相同的命令,无论它们是文件名、用户名、主机名还是从文件中读取的行。GNU Parallel 提供了许多最常见操作的速记引用(输入行、输入行的各个部分、指定输入源的不同方法等等)。Parallel 可以取代 xargs 或将命令从其输入源提供给多个不同的 Bash 实例。

这篇关于bash 5.2中文修订5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653543

相关文章

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

彻底解决win10系统Tomcat10控制台输出中文乱码

彻底解决Tomcat10控制台输出中文乱码 首先乱码问题的原因通俗的讲就是读的编码格式和写的解码格式不一致,比如最常见的两种中文编码UTF-8和GBK,UTF-8一个汉字占三个字节,GBK一个汉字占两个字节,所以当编码与解码格式不一致时,输出端当然无法识别这是啥,所以只能以乱码代替。 值得一提的是GBK不是国家标准编码,常用的国标有两,一个是GB2312,一个是GB18030 GB1

matplotlib中文乱码问题

在使用Matplotlib进行数据可视化的过程中,经常会遇到中文乱码的问题。显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导致中文无法正常显示,所以显示中文乱码。 文本使用系统默认字体、手动指定字体、使用字体管理器来解决。 一、系统默认字体(全局设置字体) 在Matplotlib中