Сохранить/загрузить массив как строку

У меня есть массив аргументов "$@", которые я хотел бы повторно использовать в другом процессе.

В основном то, что я хочу, это способ сказать:

string="$(save_array "$@")"
# save string to a file

И в другом процессе:

# load string from file
arr="$(load_array "$string")"

Все решения, которые я нашел в stackoverflow, похоже, теряли некоторую информацию (например, не работали, если некоторые элементы в массиве содержали символы новой строки или символ \0.

Это нормально, если решение использует хорошо известные программы (grep/sed/python), а не то, что не установлено в базовой системе.


person edi9999    schedule 03.10.2017    source источник
comment
Могут ли элементы массива действительно содержать \0 в bash? Это меня удивило бы.   -  person melpomene    schedule 03.10.2017
comment
Да, из моих тестов также кажется, что \0 в массивах быть не может. Кажется, второе предложение в stackoverflow.com/a/18860477/1993501 работает для меня.   -  person edi9999    schedule 03.10.2017