2011-10-05 9 views
6

Estoy trabajando en un script de shell y tengo algunas líneas de código que están duplicadas (copia pegada, digamos).¿Cómo crear una función en script de shell que recibe parámetros?

Quiero que esas líneas estén en una función. ¿Cuál es la sintaxis adecuada para usar?

¿Y qué cambios debo hacer para que esas funciones reciban los parámetros?

Aquí va un ejemplo.

que necesita para convertir esto:

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

en algo como esto:

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

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

Es sólo un ejemplo, pero creo que es bastante claro.

Gracias de antemano.

Respuesta

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

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

En un script de shell, las funciones pueden aceptar cualquier cantidad de parámetros de entrada. $ 1 representa el primer parámetro de entrada, $ 2 el segundo y así sucesivamente. $ # devuelve la cantidad de parámetros recibidos por la función y $ @ devuelve todos los parámetros en orden y separados por espacios.

Por ejemplo:

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

    a "m" "j" "k" 

volverá

m 
j 
k 
3 
m j k 
Cuestiones relacionadas