2013-11-28 3 views
1

필자는 bash 스크립트로 작업을하고있었습니다. 이 간단한 스크립트를 만들었습니다.함수에 위치 매개 변수를 전달하는 방법

#!/bin/bash 

function myfun() 
{ 
    for item in `seq 1 5` 
    do 
     echo "$item $1 $2" 
    done 
} 
myfun 

행운은 없습니다. 아래와 같이 변경하면 모든 것이 정상적으로 처리됩니다.

#!/bin/bash 

a=$1 
b=$2 

function myfun() 
{ 
    for item in `seq 1 5` 
    do 
     echo "$item $a $b" 
    done 
} 
myfun 

쉘에서 함수 내에서 인수 (위치 매개 변수)가 작동하지 않는 것처럼 보입니다. 내가 실수 한거야? 나는 아직도 것을 배우고있다. 왜 그렇게 설명 할 수 있니?

+2

는 루프 아니다 - 그것은 기능입니다. 함수 $ 1과 $ 2는 함수의 매개 변수를 나타내며 스크립트의 매개 변수는 참조하지 않습니다. –

답변

4

이 기능이없는 루프입니다 :

function myfun() 
{ 
    for item in `seq 1 5` 
    do 
     echo "$item $1 $2" 
    done 
} 

myfun $1 $2 
관련 문제