내 bash 스크립트:
#!bin/bash
MY_ARRAY=("Some string" "Another string")
function join { local IFS="$1"; shift; echo -e "$*"; }
join "," ${MY_ARRAY[@]}
나는 출력을 다음과 같이 하고 싶다:
Some string,Another string
.
대신에 나는 그것을 얻었다 Some,string,Another,string
.
원하는 결과를 얻으려면 무엇을 변경해야 합니까?
답변1
수정된 스크립트 버전:
#!bin/bash
my_array=("Some string" "Another string")
my_join() {
[ "$#" -ge 1 ] || return 1
local IFS="$1"
shift
printf '%s\n' "$*"
}
my_join , "${my_array[@]}"
노트:
- 대문자 변수 이름을 사용하지 마십시오
join
는표준 도구. 다른 이름을 사용하세요.- 참조 사용
- 사용
printf
, 사용하지 않음echo