Есть способы сделать это с помощью eval
, но они небезопасны. Есть несколько способов сделать это с помощью bash 2.05b +:
$ foo=(a b c)
$ name=foo
$ temp_indirect=${name}[@]
$ printf '<%s>\n' "${!temp_indirect}"
<a>
<b>
<c>
Это довольно уродливо, потому что он полагается на (потенциально недокументированные?) Детали реализации синтаксического анализатора bash, поэтому используйте его на свой страх и риск.
В общем, если вам нужны сложные структуры данных, я бы предложил другой язык. Во многих случаях существуют обходные пути, позволяющие сделать их возможными в bash, но синтаксис является непонятным, потому что язык не оптимизирован для них (он в основном оптимизирован для IPC и манипулирования файлами).
Монтирование должно произойти после запуска vboxadd-service.service
. Systemd v220 имеет специальные параметры fstab
для этого, но если вы не используете backports, с версией jessie вам придется вместо этого создать настраиваемый модуль монтирования. Поместите следующее в /etc/systemd/system/home-david-Documents.mount
:
[Unit]
Requires=vboxadd-service.service
After=vboxadd-service.service
[Mount]
What=GitHub-VM
Where=/home/david/Documents
Type=vboxsf
[Install]
WantedBy = multi-user.target
удалите соответствующую строку из fstab
, systemctl enable home-david- Documents.mount
и перезагрузитесь.
Проверьте журнал загрузки и systemctl status home-david-Documents.mount
, если он не работает.
Другой путь в / etc / fstab GitHub-VM / home / david / Documents vboxsf x-systemd.automount, uid = 1000, gid = 1000, dmode = 774, fmode = 664
update-initramfs -u -k all
Reboot
извините исправление неправильной машины.