Разве вы не можете объединить переменную со строкой для поиска другой переменной? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть скрипт, который я создаю для создания новых пользователей и добавления публичных ключей при загрузке нового узла. Однако у меня возникают проблемы при попытке получить из (пользователя) массив _PUBLIC_KEYS.

#!/bin/sh

USERS=(
    User1
    User2
)
User1_PUBLIC_KEYS=(
    "ssh-rsa ..."
    "ssh-rsa ..."
)

User2_PUBLIC_KEYS=(
    "ssh-rsa ..."
)

for user in "${USERS}"; do
    USERNAME="${user}"
    ...
    # Add provided public keys
    for key in "${USER}_PUBLIC_KEYS[@]"; do
        echo "${key}" >> "${home_directory}/.ssh/authorized_keys"
    done
    ...
done

Я даже пытался протестировать

user+="_PUBLIC_KEYS[@]"
    # Add provided public keys
    for key in "${user}"; do
        echo "${key}"
    done

Это приводит к

User1
User1_PUBLIC_KEYS[@]
User2
User2_PUBLIC_KEYS[@]
...