我想在一个文件中存储一些引号的数组(所以基本上是带有新行的真实世界的字符串)。我怎样才能实现它?我想将 IFS 设置为类似“xxxxxxxxx74765xxx”(这永远不会出现在我的字符串中)之类的东西,但当然,IFS 仅适用于单个字符。
我可以想到一些丑陋的技巧来做到这一点(例如,将那个无意义的字符串存储为元素之间的一行,逐行读取文件并根据它检查每一行,然后重建数组。),但我会更感激有经验的意见。
做就是了:
typeset array > file
Run Code Online (Sandbox Code Playgroud)
装载:
source file
Run Code Online (Sandbox Code Playgroud)
(您也可以使用typeset -p array
来保存数组变量的属性(导出的、唯一的...))。
或者:
print -rl -- ${(qq)array} > file
Run Code Online (Sandbox Code Playgroud)
装载:
eval "array=($(<file))"
Run Code Online (Sandbox Code Playgroud)
对于您的分隔符想法:
print -r -- ${(j[separator])array} > file
Run Code Online (Sandbox Code Playgroud)
装载:
array=("${(@s[separator])"$(<file)"}")
Run Code Online (Sandbox Code Playgroud)
(尽管要注意它会从数组的最后一个元素中删除所有尾随换行符,并且它不适用于空数组)。
归档时间: |
|
查看次数: |
783 次 |
最近记录: |