我的 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