news 2026/6/24 3:43:09

39、高级Shell脚本编程技巧与概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
39、高级Shell脚本编程技巧与概念

高级Shell脚本编程技巧与概念

1. 数组扩展与循环

在某些情况下,数组元素的扩展可能是无序的,这时可以将循环的整个输出通过管道传递给sort命令进行排序。另外,使用"${!array[@]}"扩展可以得到数组索引列表,而非数组元素列表,这在一些循环操作中很有用。

2. 进程替换
2.1 组命令与子shell的区别

组命令和子shell看起来相似,都可用于组合流进行重定向,但有重要区别。组命令在当前shell中执行所有命令,而子shell在当前shell的子副本中执行命令。这意味着子shell有自己的环境副本,当子shell退出时,该环境副本丢失,对子shell环境所做的更改(包括变量赋值)也会丢失。所以,除非脚本需要子shell,否则组命令通常更优,因为它速度更快且占用内存更少。

例如,下面的管道命令中read在子shell中执行,REPLY变量内容始终为空:

echo "foo" | read echo $REPLY
2.2 进程替换的形式与应用

为解决上述问题,shell提供了进程替换这种特殊形式的扩展。进程替换有两种表达方式:
- 对于产生标准输出的进程:<(list)
- 对于接收标准输入的进程:>(list)
其中list </

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 23:20:55

200万token上下文能力,并且越用越聪明!Google Research重构AI长期记忆

Google Research发布的Titans架构通过在推理阶段实时训练深层神经网络模块&#xff0c;让AI拥有了处理超过200万token上下文的能力&#xff0c;并在MIRAS框架下统一了序列建模的数学理论。Transformer架构提出者&#xff0c;为谷歌提供基础研究、算法与生态底座的Google Resear…

作者头像 李华
网站建设 2026/6/23 16:05:30

Python第三次作业

"""1.使用os和os.path以及函数的递归完成:给出一个路径&#xff0c;遍历当前路径所有的文件及文件夹打印输出所有的文件&#xff08;遇到文件输出路径&#xff0c;遇到文件夹继续进文件夹&#xff09;2.使用加密模块及IO模拟登录功能&#xff0c;要求使用文件模…

作者头像 李华
网站建设 2026/6/23 20:21:16

44、深入探索GDB调试技巧与C/C++代码调试

深入探索GDB调试技巧与C/C++代码调试 1. 随机数与缓冲区溢出模拟 在调试过程中,有时需要模拟一些复杂情况,比如缓冲区溢出。以下是一段模拟缓冲区溢出的代码: // Seed the random number generator so that each run is different. srand(time(NULL));// Loop count - a…

作者头像 李华
网站建设 2026/6/23 20:21:21

复盘 Git+GitHub SSH 配置:从权限报错到免密推送的全流程解决方案

在之前的 Git 仓库操作中&#xff0c;我先后遇到了「403 权限拒绝」「SSH 22 端口超时」「认证主机提示」等问题&#xff0c;最终通过 SSH 配置解决了所有推送障碍。本文将聚焦 SSH 相关技术点&#xff0c;复盘 “为什么要配置 SSH”“如何一步步配置”“遇到问题怎么解决”&am…

作者头像 李华