我有文本和每个换行器,将其值存储在数组中并显示它:
include ':react-native-vector-icons'
project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
输出:
var=("AAA
aaa
BBB
bbb
CCC
ccc")
SAVEIFS=$IFS
IFS=$'\n'
var=($var)
IFS=$SAVEIFS
for (( i=0; i<${#var[@]}; i++ )) do
echo "${var[$i]}"
done
但是我要在同一个索引数组中的两个第一个元素,每个元素都包含换行符,像这样
AAA
aaa
BBB
bbb
CCC
ccc
答案 0 :(得分:2)
如果您使用bash ANSI-C Quoting声明数组
ary=($'AAA\naaa' $'BBB\nbbb' $'CCC\nccc')
然后,您得到了想要的东西。
检查数组的内容
$ declare -p ary
declare -a ary='([0]="AAA
aaa" [1]="BBB
bbb" [2]="CCC
ccc")'
或使用printf检查它:
$ printf '>%s<\n' "${ary[@]}"
>AAA
aaa<
>BBB
bbb<
>CCC
ccc<
你不能写
var[0]=("AAA
aaa")
因为带有括号,您正在尝试将数组存储在数组元素中,而bash不允许使用数组数组。
您可以写
var=(
"AAA
aaa"
"BBB
bbb"
"CCC
ccc"
)
如果您有var=(AAA aaa BBB bbb CCC ccc)
之类的单词数组,则可以像这样将元素分组在一起:
ary=()
for (( i=0; i < ${#var[@]}; i+=2 )); do
ary+=( "${var[i]}"$'\n'"${var[i+1]}" )
done