2011-10-05 47 views
6

我正在处理一个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) 

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

在此先感谢。

回答

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

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

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

例如:

#!/bin/sh 
    function a() { 
    echo $1 
    echo $2 
    echo $3 
    echo $# 
    echo [email protected] 
    } 

    a "m" "j" "k" 

将返回

m 
j 
k 
3 
m j k 
相关问题