带有逗号和单引号的Concat数组元素-Bash

Ish*_*eet 2 arrays bash ifs

如何在Bash中使用单引号和逗号转换数组元素。

arr=("element1" "element2" "element3")
#element1 element2 element3
Run Code Online (Sandbox Code Playgroud)

所需结果 'element1','element2','element3'

根据Martin Clayton的答案,使用IFS可以得到逗号分隔的值,

SAVE_IFS="$IFS"
IFS=","
ARRJOIN="${arr[*]}"
IFS="$SAVE_IFS"

echo "$ARRJOIN"
#element1,element2,element3
Run Code Online (Sandbox Code Playgroud)

但是如何在每个元素上添加单引号。

Aks*_*gde 7

[akshay@localhost tmp]$ arr=("element1" "element2" "element3")
[akshay@localhost tmp]$ joined=$(printf ",'%s'" "${arr[@]}")
[akshay@localhost tmp]$ echo ${joined:1}
'element1','element2','element3'
Run Code Online (Sandbox Code Playgroud)

  • 啊,它删除了第一个字符。当然,连接会在末尾产生一个额外的逗号。 (3认同)