每天学习一点shell系列(2)—函数的参数传递
2023-12-13 12:24:30
参考博客: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}
文章来源:https://blog.csdn.net/happyhuidi/article/details/128144723
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!