Namen einer Umgebungsvariable nach POSIX prüfen
Prüfen Sie, ob der Name einer Umgebungsvariable portabel ist, bevor er ein Deployment scheitern lässt: DATABASE_URL besteht, ein Name mit Ziffer am Anfang oder Bindestrich scheitert mit genau der verletzten Regel. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- DATABASE_URL
- Name
- DATABASE_URL
- Konvention
- POSIX
Namen von Umgebungsvariablen wirken unkompliziert, bis eine Bereitstellung an einer führenden Ziffer, einem Bindestrich, Leerzeichen oder nicht portablen Zeichen scheitert. Diese Prüfung folgt der POSIX-Konvention: ASCII-Buchstaben, Ziffern und Unterstriche sind zulässig, am Anfang jedoch nur ein Buchstabe oder Unterstrich. Ein gültiger Name wird eindeutig bestätigt; andernfalls nennt die Meldung die verletzte Regel. So können Sie die Prüfung in Editoren, Formularen, CI-Abläufen und Konfigurationsgeneratoren einsetzen.
Welche Namen zulässig sind
Ein portabler Name verwendet bewusst einen kleinen Zeichenvorrat. Das erste Zeichen muss ein ASCII-Buchstabe von A bis Z beziehungsweise a bis z oder ein Unterstrich sein. Danach sind zusätzlich die Ziffern 0 bis 9 erlaubt.
DATABASE_URL, HOME, _INTERNAL_FLAG und API2_TOKEN bestehen die Prüfung daher. Die gesamte Zeichenfolge wird geprüft, ohne sie zu reparieren, zu normalisieren oder zu kürzen. Diese Strenge verhindert, dass eine stillschweigende Bereinigung Ihre Eingabe in einen anderen Bezeichner verwandelt.
Groß- und Kleinschreibung bleiben erhalten und sind bedeutsam: PATH und Path sind verschiedene Namen. Geprüft wird ausschließlich die portable Syntax, nicht ob eine Variable existiert, exportiert wurde, einen Wert besitzt oder von einem bestimmten Programm unterstützt wird. Bei Erfolg erhalten Sie den ursprünglichen Namen, den Gültigkeitsstatus und eine kurze Bestätigung.
Wie ungültige Namen erklärt werden
Für unterschiedliche Fehler gibt es gezielte Hinweise. Eine leere Zeichenfolge scheitert, weil das Anfangszeichen fehlt. Beginnt der Name mit einer Ziffer, greift die besondere Regel für die erste Stelle, obwohl Ziffern später zulässig sind.
Auch ein führender Bindestrich, Punkt, ein Leerzeichen oder ein Nicht-ASCII-Buchstabe wird abgelehnt. Ist der Anfang korrekt, aber folgt später ein verbotenes Zeichen, nennt die Meldung dieses Zeichen und seine ab 1 gezählte Position. Eine Shell-Zuweisung wie NAME=value wird nicht mit einem Namen verwechselt; das Gleichheitszeichen ist unzulässig.
Einsatz im Entwicklungsablauf
Die Prüfung eignet sich überall dort, wo Namen erfasst werden, bevor eine Konfiguration eine Shell oder Prozessumgebung erreicht. Ein Bereitstellungsformular kann einen Schlüssel beim Absenden prüfen und die betreffende Regel anzeigen. Ein Generator kann fehlerhafte Schlüssel zurückweisen, bevor er eine dotenv-Datei, ein Container-Manifest, eine Dienstdefinition oder eine CI-Zuordnung für Geheimnisse erzeugt.
Linter können dieselbe deterministische Regel auf Vorlagen und Beispiele anwenden. Der Algorithmus nutzt kein Netzwerk, liest keine Umgebung, speichert keine Eingabe und hängt weder von Zeit noch Zufall ab. Syntaktische Gültigkeit garantiert keine Unterstützung durch jedes Werkzeug; einzelne Systeme können zusätzliche Regeln oder reservierte Präfixe haben.
Anwendungsfälle
Bereitstellungseinstellungen prüfen
Prüfen Sie Namen, bevor Sie eine Konfiguration speichern, die die Laufzeitumgebung nicht zuverlässig bereitstellen könnte.
dotenv-Generatoren absichern
Weisen Sie fehlerhafte Schlüssel ab, bevor eine erst beim Programmstart scheiternde Datei entsteht.
Namensprüfung in CI ergänzen
Kontrollieren Sie Vorlagen und dokumentierte Namen bei Repository-Prüfungen mit einer deterministischen Regel.
Häufige Fragen
Welche Zeichen sind erlaubt?
ASCII-Buchstaben, Ziffern und Unterstriche sind erlaubt. Das erste Zeichen muss ein ASCII-Buchstabe oder Unterstrich sein.
Darf ein Name mit einer Ziffer beginnen?
Nein. Ziffern sind erst danach erlaubt: 2FA_TOKEN scheitert, TOKEN_2FA besteht die Prüfung.
Wird geprüft, ob die Variable existiert?
Nein. Geprüft wird nur der vorgeschlagene Name; die Umgebung sowie Export und Zuweisung werden nicht gelesen.
Sind kleingeschriebene Namen gültig?
Ja. ASCII-Groß- und Kleinbuchstaben sind gültig, und die ursprüngliche Schreibweise bleibt erhalten.
Korrigiert oder kürzt das Werkzeug einen ungültigen Namen?
Nein. Der ganze Text wird genau so geprüft, wie Sie ihn eingegeben haben, ohne Leerzeichen zu entfernen oder Zeichen zu reparieren, denn eine stille Bereinigung könnte Ihren Namen in einen anderen verwandeln. Stattdessen nennt die Fehlermeldung die verletzte Regel und die Stelle.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/env-var-name-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"DATABASE_URL"}'const res = await fetch("https://api.kit.forhosting.com/dev/env-var-name-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "DATABASE_URL"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/env-var-name-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "DATABASE_URL"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/env-var-name-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"DATABASE_URL"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"DATABASE_URL"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/env-var-name-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "DATABASE_URL"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.env_var_name_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Wie ungültige Namen erklärt werden
API-KEY scheitert beispielsweise am Bindestrich, API KEY am Leerzeichen. Typisierte Fehler tragen den Code invalid_input. API-Clients können dadurch korrigierbare Eingaben von internen Störungen unterscheiden, ohne Meldungstexte auswerten zu müssen.
Einsatz im Entwicklungsablauf
Deshalb liefert er im Browser, in automatisierten Tests und über die API dasselbe Ergebnis. Eine API-Anfrage kostet $0.002.
Technische Fragen
Sind Bindestriche oder Punkte erlaubt?
Nein. Bindestrich, Punkt, Leerzeichen, Gleichheitszeichen und andere nicht portable Zeichen führen zu invalid_input.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Dieselbe deterministische Prüfung ist auch im Browser möglich.