芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 3967|回复: 0

【Linux】【Shell】父子shell之间的参数传递

[复制链接]

该用户从未签到

68

主题

85

帖子

922

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
922
发表于 2022-2-15 11:43:43 | 显示全部楼层 |阅读模式

引言

在编写shell脚本时,为了减少单个脚本的复杂度,往往使用脚本嵌套的方式,有时单个参数需要传递到多个shell中,有时又不需要传递,因此理解参数传递的方法是十分重要的。

常用方法

1.使用本地变量

filename="test.sh"

本地变量值存在于本地,无法传递至其它shell脚本

2.系统环境变量 export

export filename="test.sh"

使用 export导出的变量属于“系统环境变量”,会从“父shell”传递到“子shell”,但无法从“子shell”反向传递到“父shell”

3.使用source运行脚本

source test.sh

使用source命令执行脚本时,会直接读取脚本里的语句,并依次在当前shell中执行,因此不会产生“子shell”,所有的环境变量也都会生效,包括\$#、\$1等输入参数也会直接生效,此时如果source执行的脚本中也使用了\$#、\$1等参数,则会出现参数混乱的情况,需要特别注意!!!解决方法:在父脚本中使用source命令运行带传递参数的子脚本时,切记在后面加上传递参数,以防止子脚本使用父脚本的传递参数造成参数混乱。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-11-1 07:51 , Processed in 0.113444 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表