shell函数参数

Posted 玉曲风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell函数参数相关的知识,希望对你有一定的参考价值。

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...

带参数的函数示例:

  1. #!/bin/bash
  2. funWithParam(){
  3. echo "The value of the first parameter is $1 !"
  4. echo "The value of the second parameter is $2 !"
  5. echo "The value of the tenth parameter is $10 !"
  6. echo "The value of the tenth parameter is ${10} !"
  7. echo "The value of the eleventh parameter is ${11} !"
  8. echo "The amount of the parameters is $# !" # 参数个数
  9. echo "The string of the parameters is $* !" # 传递给函数的所有参数
  10. }
  11. funWithParam 1 2 3 4 5 6 7 8 9 34 73

运行脚本:

The value of the first parameter is 1 !
The value of the second parameter is 2 !
The value of the tenth parameter is 10 !
The value of the tenth parameter is 34 !
The value of the eleventh parameter is 73 !
The amount of the parameters is 12 !
The string of the parameters is 1 2 3 4 5 6 7 8 9 34 73 !"

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。

另外,还有几个特殊变量用来处理参数,前面已经提到:

特殊变量说明
$# 传递给函数的参数个数。
$* 显示所有传递给函数的参数。
[email protected] 与$*相同,但是略有区别,请查看Shell特殊变量
$? 函数的返回值。


以上是关于shell函数参数的主要内容,如果未能解决你的问题,请参考以下文章

参数传递:shell脚本调用一个带参数的python函数

Linux bash基础特性二

代码片段:Shell脚本实现重复执行和多进程

shell编程-10-函数

在函数参数中发送 shell 命令不起作用

有没有办法将2个非常相似的代码片段组合成一个函数并重复?