私の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