news 2026/9/2 21:57:10

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/9/2 19:53:43

nVisual批量excel导入设备与线缆生成可视化视图-接口文档

nVisual提供了excel数据批量导入接口,通过excel批量导入restful api接口,可以快速实现设备与线缆的批量上架可视化。批量导入接口需要通过 authorization:Bearer token认证,token可以通过nVisual的用户权限管理里面的API token申请&#xff0…

作者头像 李华
网站建设 2026/9/2 0:55:06

如何快速掌握BasePopup:Android弹窗开发的终极指南

如何快速掌握BasePopup:Android弹窗开发的终极指南 【免费下载链接】BasePopup Android下打造通用便捷的PopupWindow弹窗库 项目地址: https://gitcode.com/gh_mirrors/ba/BasePopup 在Android应用开发过程中,弹窗功能几乎是不可或缺的组件。无论…

作者头像 李华
网站建设 2026/9/2 19:52:50

PyCharm插件开发入门:零基础到第一个插件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个PyCharm插件开发教程项目,包含:开发环境搭建、基础插件结构讲解、简单功能实现示例、调试技巧。以Step-by-Step方式呈现,每个步骤附带代…

作者头像 李华
网站建设 2026/9/2 20:05:23

10倍效率!Android Studio中文开发必备AI工具链

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请生成一个Android Studio效率工具集项目,包含以下功能:1. 常用代码片段快速生成(如RecyclerView适配器、网络请求模板等) 2. 中文资源文件自动补全 3. 布局…

作者头像 李华
网站建设 2026/9/2 9:10:42

3分钟搞定:用chmod保护你的敏感文件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个紧急文件保护原型,用户输入文件路径后:1.自动检测当前权限 2.提供三种保护级别选项(基本保护600、严格保护400、完全锁定000&#xff09…

作者头像 李华
网站建设 2026/9/2 10:28:11

AI如何帮你高效解决排列组合难题?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Python程序,能够自动生成给定元素集合的所有排列组合。程序应支持用户输入元素列表(如[A, B, C])和组合长度(如2&#xff09…

作者头像 李华