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

Mos*_*cho 9 linux bash shell function

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

我希望这些线在一个函数中.使用的正确语法是什么?

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

这是一个例子.

我需要转这个:

amount=1
echo "The value is $amount"
amount=2
echo "The value is $amount"
Run Code Online (Sandbox Code Playgroud)

进入这样的事情:

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

amount=1
display_value($amount)
amount=2
display_value($amount)
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但我认为它已经足够清楚了.

提前致谢.

Dan*_*man 15

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

amount=1
display_value $amount
amount=2
display_value $amount
Run Code Online (Sandbox Code Playgroud)


Alf*_*ang 14

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

例如:

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

  a "m" "j" "k"
Run Code Online (Sandbox Code Playgroud)

将返回

m
j
k
3
m j k
Run Code Online (Sandbox Code Playgroud)