Wejście JSON

Wyjście Shell/Bash

Czym jest konwerter JSON do Shell/Bash?

Masz plik konfiguracyjny JSON i skrypt bash, który potrzebuje tych wartości — co robisz? Ręczne kopiowanie par klucz-wartość jako instrukcji export jest żmudne i podatne na błędy. To narzędzie bierze Twój JSON i generuje deklaracje zmiennych powłoki, które możesz bezpośrednio sourceować. Skrypty Bash, potoki CI/CD jak GitHub Actions i punkty wejścia Docker — wszystkie czerpią korzyści z sourceowania jednego pliku env. Specyfikacja JSON definiuje format wejściowy, a składnia POSIX shell reguluje wyjście. Do dynamicznego parsowania JSON w czasie wykonywania jq jest właściwym narzędziem.

Konwersja odbywa się w przeglądarce. Ustaw prefiks zmiennej w panelu konfiguracji. Nic nie jest wysyłane na serwer. Do dynamicznego parsowania JSON w czasie wykonywania użyj jq lub grep z JSON. To narzędzie służy do generowania statycznych przypisań zmiennych z known JSON.

Jak używać tego narzędzia

1

Wklej lub wczytaj JSON

Wklej swój JSON lub załaduj plik. Ustaw prefiks zmiennej w panelu konfiguracji.

2

Przejrzyj wyjście Shell

Prawy panel pokazuje wygenerowane przypisania zmiennych powłoki. Użyj jq do dynamicznego parsowania JSON w skryptach.

3

Kopiuj lub pobierz

Użyj Kopiuj lub Pobierz. Aby najpierw sformatować JSON, użyj Formatera JSON. Do walidacji użyj Walidatora JSON.

Przykłady JSON do Shell

Oto przykład generowania zmiennych powłoki z obiektu JSON.

Przykład: Rekord abonenta

Wejście JSON:

Wejście

Wygenerowane wyjście shell:

Wyjście

Kiedy JSON do Shell jest przydatny

Gdy piszesz skrypty wdrożeniowe, potoki CI/CD lub automatyzację wymagającą wartości konfiguracyjnych z JSON, konwersja na zmienne powłoki pozwala na ich source i użycie $VAR w skrypcie. Dla odpowiedzi API lub dynamicznego JSON użyj jq w czasie wykonywania. Dla Windows użyj JSON do PowerShell zamiast tego.

Często zadawane pytania

Jaka jest różnica między bash a powłoką POSIX dla tego wyjścia?

Wygenerowane wyjście używa przypisań VAR="wartość" działających zarówno w bash, jak i POSIX sh. Dla tablic asocjacyjnych (declare -A) wymagany jest bash 4+ — macOS domyślnie zawiera bash 3. Dla maksymalnej przenośności użyj jq w czasie wykonywania.

Kiedy używać jq zamiast tego narzędzia?

Użyj jq, gdy JSON pochodzi z dynamicznego źródła (wywołanie API, wyjście potoku, plik zmieniający się w czasie wykonywania). Użyj tego narzędzia dla statycznego JSON, który chcesz przekonwertować raz i sourceować w skrypcie.

Czy mogę użyć wyjścia bezpośrednio w GitHub Actions?

Tak. Runnery GitHub Actions używają bash. Możesz przekierować wyjście do $GITHUB_ENV lub sourceować je w kroku run. Do parsowania JSON z wyjść kroków, fromJson() lub jq są bardziej elastyczne.

Czy bezpiecznie jest tu wkleić mój JSON?

Całkowicie bezpiecznie. Wszystko działa w przeglądarce za pomocą JavaScript — nic nie jest wysyłane na żaden serwer. Możesz to zweryfikować, otwierając zakładkę Sieć przeglądarki. Bez konta.

Co się dzieje ze znakami specjalnymi jak cudzysłowy lub nowe linie?

Wartości ze spacjami, podwójnymi cudzysłowami lub znakami specjalnymi są otaczane pojedynczymi cudzysłowami lub escapowane. Sprawdź wyjście i przetestuj je w docelowym środowisku powłoki.

Powiązane narzędzia

jq. Specyfikacja JSON. MDN JSON. RFC 8259. Podręcznik Bash.