当前位置: 首页 > 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/a/162606.html

相关文章:

  • MySQL_第13章_视图
  • uniapp 设置安全区域
  • uniapp打包华为,提示请提供64位版本软件包后再提交审核
  • ORA-01092 ORA-14695 ORA-38301
  • Oracle RAC的thread
  • SpringBoot整合Freemarker(三)
  • 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戒毒科普宣传系统有效提高戒毒成功率