Use*_*ame 3 bash array shell-script quoting
我的 bash 脚本:
#!bin/bash
MY_ARRAY=("Some string" "Another string")
function join { local IFS="$1"; shift; echo -e "$*"; }
join "," ${MY_ARRAY[@]}
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
Some string,Another string
.
相反,我得到Some,string,Another,string
.
我必须改变什么才能得到我想要的结果?
Wil*_*ard 10
我修改过的脚本版本:
#!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[@]}"
Run Code Online (Sandbox Code Playgroud)
笔记:
join
是标准工具。使用不同的名称。printf
,不echo