가장 좋은 방법은 위치 인수로 전달하는 것입니다. 다른 건 없어 문자열로 전달할 수 있지만이 방법으로 문제가 발생할 수 있습니다. 예:
array=(one two three four five)
function show_passed_array(){
echo $@
}
또는
function show_passed_array(){
while $# -gt 0;do
echo $1;shift
done
}
show_passed_array ${array[@]}
산출:
one two three four five
배열 값에 공백 기호가 있으면 함수에서 인덱스로 값에 액세스하기 위해 전달하기 전에 요소를 먼저 인용해야합니다 $ 1 $ 2 $ 3 ... 위치 매개 변수를 사용하십시오. 인덱스 0-> 1, 1-> 2, ... 액세스를 반복하려면 Shift 후 항상 $ 1을 사용하는 것이 가장 좋습니다. 추가가 필요하지 않습니다. 다음과 같은 배열없이 인수를 전달할 수 있습니다.
show_passed_array one two three four five
bash 미디어는 전달 된 인수에서 배열을 자동으로 작성하여 함수에 전달 한 다음 위치 인수를 갖습니다. 또한 $ {array [2]}를 쓸 때 실제로 결과 인수 1 2 3 4를 작성하여 함수에 전달했습니다. 따라서 해당 통화는 동일합니다.