如何在shell脚本中创建接收参数的函数?

时间:2011-10-05 00:29:45

标签: linux bash function shell

我正在研究一个shell脚本,我有一些重复的代码行(复制粘贴,让我们说)。

我希望这些行在函数中。使用的正确语法是什么?

为了让这些函数接收参数,我做了什么改变?

这是一个例子。

我需要转过身来:

amount=1
echo "The value is $amount"
amount=2
echo "The value is $amount"

这样的事情:

function display_value($amount) {
    echo "The value is $amount"
}

amount=1
display_value($amount)
amount=2
display_value($amount)

这只是一个例子,但我认为这很清楚。

提前致谢。

2 个答案:

答案 0 :(得分:15)

function display_value() {
    echo "The value is $1"
}

amount=1
display_value $amount
amount=2
display_value $amount

答案 1 :(得分:14)

在shell脚本中,函数可以接受任意数量的输入参数。 $ 1代表第一个输入参数,$ 2代表第二个输入参数,依此类推。 $#返回函数接收的参数数量,$ @按顺序返回所有参数,并用空格分隔。

例如:

  #!/bin/sh
  function a() {
   echo $1
   echo $2
   echo $3
   echo $#
   echo $@
  }

  a "m" "j" "k"

将返回

m
j
k
3
m j k