zsh文字列配列をファイルに保存してロードする方法は?

zsh文字列配列をファイルに保存してロードする方法は?

いくつかの引用符(デフォルトでは改行文字を含む実際の文字列)の配列をファイルに保存したいと思います。どのように実装できますか? IFSを「xx​​xxxxxxx74765xxx」(私の文字列には決して表示されません)のように設定しようとしましたが、もちろんIFSは単一文字でのみ機能します。

これを行うには、いくつかの醜いハッキングを考えることができます(たとえば、意味のない文字列を要素間に1行で保存し、ファイルを1行ずつ読み、各行を確認して配列を再構築します)。しかし、経験豊富なコメントに感謝します。

ベストアンサー1

ただし:

typeset array > file

負荷:

source file

(配列変数の属性(エクスポート、一意...)を保存するためにも使用できますtypeset -p array。)

または:

print -rl -- ${(qq)array} > file

負荷:

eval "array=($(<file))"

あなたのため仕切りアイデア:

print -r -- ${(j[separator])array} > file

負荷:

array=("${(@s[separator])"$(<file)"}")

(しかし、配列の最後の要素からすべての末尾の改行文字を削除し、空の配列では機能しません。)

おすすめ記事