Создание псевдонима в zshrc из файла json
Кто-нибудь знает, как создать псевдоним в zshrc
читая файл JSON с локальной машины
Например, мои имена файлов JSON ip.json
как есть
{"local":"127.0.0.1"}
и хотите создать псевдоним в zshrc
как
alias local = "ssh root@127.0.0.1"
1 ответ
Решение
Вы можете использовать jq
инструмент (доступно через apt-get
) для этого.
Если файл ip.json
имеет объект json, что каждый ключ является отдельным хостом. Следуя вашему примеру (по любой причине, вы не можете использовать local
псевдоним на Zsh без получения проблемы с завершением)
{
"Local": "127.0.0.1",
"remote": "192.168.0.5"
}
Вы можете добавить это к вашему zshrc
файл:
# Use jq to get all keys in the root object and create a loop
for host in $(jq --raw-output 'keys | .[]' ip.json); do
# Get the key value of these keys and create the alias
alias $host=ssh\ root@$(jq --raw-output ".$host?" ip.json)
done
использование man jq
для получения дополнительной информации об этом инструменте.