Создание псевдонима в 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 для получения дополнительной информации об этом инструменте.

Другие вопросы по тегам