news 2026/6/12 22:50:39

5、Shell编程中的参数、变量与数组详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5、Shell编程中的参数、变量与数组详解

Shell编程中的参数、变量与数组详解

1. 变量的基本概念与作用域

在Shell编程里,变量是存储数据的容器。变量的作用域决定了它在程序中的可见范围。一般而言,在脚本里赋值的变量默认可在当前脚本以及当前脚本定义的函数中访问。不过,在子shell中设置的变量,对调用它的脚本是不可见的。子shell包含命令替换(如$(command)`command`)、管道的所有元素以及用括号括起来的代码(如( command ))。

例如,下面的代码展示了变量在子shell中的作用域问题:

printf "%s\n" ${RANDOM}{,,,,,} | while read num do (( num > ${biggest:=0} )) && biggest=$num done printf "The largest number is: %d\n" "$biggest"

在这个例子中,biggest变量在while循环里赋值,但由于while循环是管道的一部分,在子shell中执行,所以循环结束后,外部脚本无法获取到biggest的值。从Bash - 4.2开始,新增了lastpipe选项,可让管道中的最后一个进程在当前shell中执行,使用方法如下:

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

6、Shell编程:函数与字符串操作技巧

Shell编程:函数与字符串操作技巧 1. Shell函数基础 Shell函数是被赋予名称的复合命令,它存储一系列命令以供后续执行。函数名本身成为一个命令,使用方式与其他命令相同,其参数可通过位置参数获取,并且和其他命令一样会设置返回码。 - 执行特性 :函数在调用它的脚本的…

作者头像 李华
网站建设 2026/6/9 21:29:57

OpenWrt主题选择终极指南:为你的路由器找到完美界面

OpenWrt主题选择终极指南:为你的路由器找到完美界面 【免费下载链接】luci LuCI - OpenWrt Configuration Interface 项目地址: https://gitcode.com/gh_mirrors/lu/luci 还在为路由器管理界面不够美观而烦恼吗?想要一个既实用又好看的OpenWrt配置…

作者头像 李华
网站建设 2026/6/12 8:38:29

8、文件操作与命令全解析

文件操作与命令全解析 在文件操作和处理的领域中,有许多强大的命令和工具可供我们使用。下面将详细介绍一些常用的文件操作命令、正则表达式以及文件名称扩展选项。 常用文件操作命令 cut 命令 :用于从文件的每一行中提取指定部分,可以按字符或字段进行提取。它可以从命…

作者头像 李华
网站建设 2026/6/11 21:04:59

VSCode中文效率革命:比英文开发快3倍的技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个VSCode效率增强套件,重点优化中文开发体验:1. 中文智能片段库(常用中文代码模板);2. 中文符号自动配对与格式化&…

作者头像 李华
网站建设 2026/6/13 17:35:59

7、字符串操作与文件操作全解析

字符串操作与文件操作全解析 字符串操作 在编程过程中,字符串操作是一项基础且重要的技能。下面我们将详细介绍一些常见的字符串操作及其实现方法。 1. 字符串大小写转换 在处理用户输入或数据时,经常需要对字符串进行大小写转换。以下是一个将单词转换为大写的函数示例:…

作者头像 李华
网站建设 2026/6/10 2:26:20

1小时打造ConvLSTM原型:雷达回波预测实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建快速验证型雷达回波预测器。需求:1. 接受NEXRAD雷达数据输入 2. 极简版ConvLSTM架构(3层以内) 3. 实时返回风暴移动轨迹预测 4. 风险等级自动标注 5. 支持结果一键分…

作者头像 李华