当前位置: 首页 > article >正文

每天学习一点shell系列(2)—函数的参数传递

参考博客:shell 脚本-10函数_eno_zeng的博客-CSDN博客

  • $n 或 ${n} :函数内使用 $n 或 ${n} 访问对应的参数, 数字代表参数的前后顺序, $1 代表第一个参数, $2 代表第三个参数, $n 代表第n个参数;当n>=10时,需要使用${n}来获取参数。
  • $# :使用 $# 获取参数的个数;
  • $* 和 $@ :使用 $* 和 $@ 获取所有的参数;
  • {}:使用花括号{}来明确变量的边界,特别是在变量名后面紧接着其他字符的情况下;

1)示例代码

useParams () {
  echo "参数1: $1"
  echo "参数2: $2"
  echo "参数3: ${3}"
  echo "参数个数: $#"
  echo "所有参数: $*"
}

useParams 1 2 3 4 s

2)执行结果

参数1: 1
参数2: 2
参数3: 3
参数个数: 5
所有参数: 1 2 3 4 s

3)注意事项

$10 不能获取第十个参数,获取第十个参数需要${10}。

当n>=10时,需要使用${n}来获取参数。

例如:在.sh文件中使用以下脚本:

/data/miniconda3/envs/env-3.6.8/bin/python get_goods_picture_and_feature_all.py $1 $2 $3 $4 $5 $6 $7 $8 $9 $10

当传入以下参数时:

dianshang.mdb.mig x2 x3 x4 x5 x6 x7 x8 20 200000"

传入的第10个参数不是200000,而是第1个参数和字符串'0'——‘dianshang.mdb.mig0’

正确的打开方式如下:

/data/miniconda3/envs/env-3.6.8/bin/python get_goods_picture_and_feature_all.py $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}


http://www.kler.cn/news/162606.html

相关文章:

  • Web前端 ---- 【Vue】Vuex的使用(辅助函数、模块化开发)
  • python 使用 watchdog 实现类似 Linux 中 tail -f 的功能
  • MySQL 教程 2.1
  • 【React设计】React企业级设计模式
  • python-04(入门基础篇4——lists相关的部分语法)
  • IC入门必看| 数字IC前端设计学习路线与方法(内附学习视频)
  • keepalived 高可用主备
  • python基于轻量级GhostNet模型开发构建23种常见中草药图像识别系统
  • swagger入门
  • MySQL视图介绍与实验练习
  • QT 中 多线程(备查)
  • Spring基于注解开发
  • 剪映最新版的4.9,主要更新的功能(于2023年12月2日发布)
  • 3D Web轻量引擎HOOPS Communicator如何实现对大模型的渲染支持?
  • Java IO流(一) 基本知识
  • 你知道模拟养成游戏如何开发吗?
  • Gerber文件使用详解
  • LeetCode Hot100 17.电话号码的字母组合
  • MySQL高级--01_1--数据库缓冲池(buffer pool)
  • 【广州华锐互动VRAR】VR戒毒科普宣传系统有效提高戒毒成功率
  • 反序列化 [网鼎杯 2020 朱雀组]phpweb 1
  • A : DS静态查找之顺序查找
  • 视频后期特效处理软件 Motion 5 mac中文版
  • 使用java线程实现亿级数据处理
  • 【Python】pptx文件转pdf
  • 优秀案例 | 元宇宙双语财经科技主播“舒望”主持首届粤港澳大湾区元宇宙国际传播论坛
  • 多目标追踪评价指标
  • Android Kotlin 泛型:强大的类型抽象和重用利器
  • 智能优化算法应用:基于战争策略算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 维基百科文章爬虫和聚类:高级聚类和可视化