Поскольку вы предпочитаете оболочку Fish, я предложу три варианта.
Во-первых, учитывая Список данных
в строковом формате вы можете использовать разделение строки
чтобы разделить отдельные строки на фактический список:
> установить список данных "
Кот
Собака
Кролик
Морская свинка
Хомяк
"
> установить --show DataList
$DataList: установлен в глобальной области видимости, неэкспортированный, с 1 элементом
$DataList[1]: |\nКошка\nСобака\nКролик\nМорская свинка\nХомячок\n|
> установить значение (разделить строку -n \n "$DataList")
> установить --показать значение
$Value: задано в глобальной области видимости, неэкспортировано, с 5 элементами.
$Value[1]: |Кот|
$Value[2]: |Собака|
$Value[3]: |Кролик|
$Value[4]: |Морская свинка|
$Value[5]: |Хомяк|
> эхо $значение[2]
Собака
^ Пустые строки в примере предназначены исключительно для удобочитаемости и не отображаются в фактическом выводе.
Но если вы можете, просто вставьте данные в виде литерала списка в сценарий и избегайте лишних действий. разделение строки
:
> установить DataList "Кот" \
"Собака" \
"Кролик" \
"Морская свинка" \
"Хомяк"
> установить --show DataList
$DataList: набор в глобальной области видимости, неэкспортированный, с 5 элементами
$DataList[1]: |Кот|
$DataList[2]: |Собака|
$DataList[3]: |Кролик|
$DataList[4]: |Морская свинка|
$DataList[5]: |Хомяк|
> эхо $DataList[2]
Собака
Наконец, ваш вопрос, взятый буквально, состоит в том, чтобы разделить список на переменные, а не переменная, содержащая список. Я предполагаю, что это не В самом деле что ты имел в виду. Имхо, это было бы немного патологически, так как вы потеряли бы возможность легко считать, повторять и индексировать результаты, но это может быть сделано ...
установить список данных "
Кот
Собака
Кролик
Морская свинка
Хомяк
"
установить v (разделить строку -n \n "$DataList")
установить сценарий (для i in (seq (count $v))
echo 'установить значение'(math $i-1) '"'$v[$i]'"'
конец)
eval (объединение строк ";" $scrpt)
установить --стереть v
установить --erase скрипт
Результат:
$Value0 = "Кот"
$Value1 = "Собака"
$Value2 = "Кролик"
$Value3 = "Морская свинка"
$Value4 = "Хомяк"