gpt4 book ai didi

bash - Shell/Bash - 如何将数组保存到文件并加载另一个文件数组?

转载 作者:行者123 更新时间:2023-11-29 09:26:23 25 4
gpt4 key购买 nike

如何将数组保存到文件并加载另一个文件数组?

file1.sh
ARR=("aaa" "bbb" "ccc");
save to file2; # I do not know how :-(

file3.sh
load from file2; # I do not know how :-(
echo ${ARR[@]};

我试过...

file1.sh
declare -a ARR > /tmp/file2

file3.sh
source /tmp/file2
echo ${ARR[@]};

不起作用:-(建议别人更好的方法?谢谢...

最佳答案

如果你的变量的值不是在多行中,一个基本和简单的方法是使用 set:

# Save
set | grep ^ARR= > somefile.arrays
# Load
. somefile.arrays

当然,如果您对安全性敏感,还有其他解决方案,但这是最快的方法。

多行数组的更新:

# Save
printf "%s\x00" "${ARR[@]}" > somefile.arrays
# Load
ARR=() I=0
while read -r ARR[I++] -d $'\0'; do continue; done < somefile.arrays

如果您的值在任何地方都没有 $'\0' ,那将起作用。如果是这样,您可以使用除 $'\0' 之外的其他唯一分隔符。只需相应地更改 \x00$'\0

关于bash - Shell/Bash - 如何将数组保存到文件并加载另一个文件数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com