Задача 1:
В вашем примере read
получает ввод не из аргумента командной строки, а из стандартного ввода. Таким образом, входные данные, которые он получает, не проходят через синтаксический анализатор строк bash
. Вместо этого он обрабатывается как литеральная строка, разделенная пробелами. Итак, с вашим вводом значения вашего массива становятся:
[0]->("apple
[1]->fruit"
[2]->"orange"
[3]->"grapes"
Чтобы сделать то, что вы хотите, вам нужно экранировать все пробелы, которые у вас есть, чтобы избежать срабатывания разделителя. А именно, вы должны ввести следующий ввод после вызоваread
:
apple\ fruit oranges grapes
Проблема 2 :Для того чтобы read
сохранял полученные входные данные в виде массива, у вас должен быть переключатель -a
, за которым следует имя массива. Итак, вам нужно:
read -a myarray -p "Enter your items"
https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/
Вы не должны возиться с файлами в VolFS, используя Windows. Чтобы восстановить этот файл, вы можете переместить его в другой каталог, например. C :\Темп. Затем вы можете переместить этот файл обратно с помощью WSL :
.mv /mnt/c/Temp/theme /home/purplesci/.config/omf/theme