Shell-Argument quoten
Aus hello world wird 'hello world', ein einziges sicheres Shell-Argument: Leerzeichen, Anführungszeichen, Sternchen und andere Sonderzeichen landen in einfachen Anführungszeichen, damit die Shell sie als reine Daten weitergibt. Die Umkehrung liefert den Originaltext. 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
- hello world
- Berechnungsmodus
- Encode
- Ergebnis
- 'hello world'
- Kodierung
- posix_shell
- Eingabelänge
- 11
- Ausgabelänge
- 13
Dieser Shell-Argument-Quoter wandelt Klartext in eine Form um, die als einzelnes POSIX-Shell-Argument sicher eingefügt werden kann, und kehrt dieselbe Abbildung um, wenn Sie die Originalzeichenkette aus quotierter Shell-Syntax zurückbenötigen. Die Kodierung folgt der bekannten Einfachanführungs-Konvention von Werkzeugen wie shlex.quote: leere Eingabe wird zu einem Paar leerer einfacher Anführungszeichen, Token nur aus Buchstaben, Ziffern und einer kleinen Menge sicherer Satzzeichen bleiben unquotiert, und alles andere wird in einfache Anführungszeichen gewickelt, wobei jedes eingebettete Apostroph als Schließen, escapetes Anführungszeichen und Wiedereröffnen umgeschrieben wird, damit die Shell nie eine offene Zeichenkette sieht. Das Dekodieren durchläuft ein argv-Wort mit einfachen Anführungszeichen, doppelten Anführungszeichen mit dem begrenzten POSIX-Escape-Satz und unquotierten Backslash-Escapes und scheitert deutlich bei nicht beendeten Anführungszeichen, einem abschließenden Backslash oder unquotiertem Weißraum, sodass ein halb kopiertes Befehlsfragment nicht still zum falschen Pfad wird. Der Pfad ist voll deterministisch: derselbe Text und derselbe Modus erzeugen immer dasselbe Ergebnis, ohne Netzaufrufe, Zufallssalze und datumsabhängige Abkürzungen. Kleine Prüfungen umfassen das Quoten eines Pfads mit Leerzeichen, das Einbetten eines Apostrophs in ein quotiertes Wort und das Ablehnen eines doppelquotierten Fragments, das nie schließt.
Was POSIX-Shell-Quoting ist und was dieses Werkzeug zurückgibt
Eine POSIX-Shell zerlegt eine Befehlszeile in Wörter und wendet Quoting-Regeln an, bevor ein Programm argv sieht. Leerzeichen, Tabs und Zeilenumbrüche trennen Wörter, sofern sie nicht in Anführungszeichen stehen. Einfache Anführungszeichen lassen jedes Zeichen wörtlich bis zum nächsten einfachen Anführungszeichen durch, weshalb das klassische sichere Rezept lautet, die ganze Zeichenkette zu umschließen und jedes interne Apostroph als Vier-Zeichen-Bruch zu setzen, der das Anführungszeichen schließt, ein literales Apostroph ausgibt und es wieder öffnet.
Doppelte Anführungszeichen erlauben einen kleineren Escape-Satz für Dollar, Backtick, doppeltes Anführungszeichen, Backslash und Zeilenumbruch, nützlich beim Lesen veralteter Schnipsel, aber nicht der bevorzugte Encode-Pfad auf dieser Seite. Metazeichen wie Stern, Fragezeichen, Pipe, Ampersand, Semikolon und Umleitungsoperatoren ändern die Shell-Grammatik, wenn sie unquotiert erscheinen; in einfache Anführungszeichen gewickelt werden sie zu gewöhnlichen Daten für das empfangende Programm. Diese Landing implementiert jenen Encode-Satz und eine sorgfältige Umkehrung beim Decode: die Antwort ist genau ein Argument, ohne Variablenexpansion, Glob-Ausführung oder Aufteilung einer vollen Pipeline in viele Wörter.
Anwendungsfälle
Sichere Pfade in Shell-Schnipseln
Quoten Sie Dateipfade und Werte mit Leerzeichen, Anführungszeichen oder Metazeichen, bevor Sie sie in POSIX-Shell-Skripte, ssh-Remote-Befehle oder docker-run-Zeilen einfügen.
CI und Vertragstests
Erzeugen Sie deterministische Quote- und Unquote-Paare, damit Pipelines dieselbe POSIX-sichere Form über Sprachen und Releases hinweg prüfen.
Häufige Fragen
Wie quote ich eine Zeichenkette für ein POSIX-Shell-Argument?
Senden Sie die Klartext-Zeichenkette in text mit mode encode (Standard). Leere Eingabe wird zu '', sichere nackte Token bleiben unquotiert, alles andere wird einfach quotiert mit '\'' für jedes Apostroph.
Wie entquote ich ein shell-quotiertes Argument?
Senden Sie das quotierte Wort in text mit mode decode.
Führt dies Shell-Befehle aus?
Nein. Es transformiert nur Text für sicheres argv. Es startet keine Shell, expandiert keine Variablen oder Globs und teilt keine volle Befehlszeile in mehrere Wörter.
Was passiert mit einem Apostroph im Text?
Innerhalb einfacher Anführungszeichen lässt sich ein Apostroph nicht maskieren. Das Werkzeug schließt deshalb das Zitat, fügt einen mit Backslash maskierten Apostroph ein und öffnet das Zitat erneut. Diese vier Zeichen, '\'', halten Ihr Argument zusammen.
Warum schlägt das Entfernen der Anführungszeichen manchmal fehl?
Weil das Ergebnis genau ein Argument sein muss. Ein nie geschlossenes Anführungszeichen, ein Backslash ganz am Ende oder ein Leerzeichen außerhalb der Anführungszeichen deuten auf ein abgeschnittenes Stück oder mehrere Wörter hin, und das Werkzeug rät dann nicht.
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/enc/shell-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello world"}'const res = await fetch("https://api.kit.forhosting.com/enc/shell-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello world"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/shell-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello world"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/shell-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello world"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello world"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/shell-escape", 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": "hello world"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.shell_escape",
"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
Was POSIX-Shell-Quoting ist und was dieses Werkzeug zurückgibt
Die JSON-Antwort enthält stets result für die transformierte Zeichenkette, mode mit encode oder decode, encoding fest auf posix_shell sowie input_length und output_length, damit Tests Größen prüfen können. Encode meldet auch needs_quotes und apostrophes_escaped; decode meldet quote_segments, damit Sie sehen, wie viele quotierte Regionen verbraucht wurden. Es gibt kein stilles Teil-Überspringen bei kaputtem Quoting: entweder ist das Wort wohlgeformtes Shell-Quoting oder die Anfrage scheitert mit invalid_input.
Wie text und mode gelesen werden und Ergebnisse reproduzierbar bleiben
Mode ist standardmäßig encode und akzeptiert decode explizit; Aliasnamen op, direction und action mappen auf denselben Schalter für Skripte, die diese Namen bereits verwenden, und quote oder unquote gelten als Synonyme. Encode klassifiziert die Zeichenkette: leer wird zu einem Paar leerer einfacher Anführungszeichen; ein Token, das dem sicheren nackten Satz aus Buchstaben, Ziffern und At-Zeichen Prozent plus Gleich Doppelpunkt Komma Punkt Schrägstrich Unterstrich Bindestrich entspricht, wird unverändert zurückgegeben, weil es keinen Schutz braucht; jedes andere Zeichen einschließlich Leerzeichen, Anführungszeichen oder Shell-Metazeichen erzwingt eine volle Einfachanführungs-Umhüllung mit Apostroph-Spleiß für jedes interne einfache Anführungszeichen. Weil die Umhüllung in einem einzigen Durchlauf von links nach rechts erfolgt, erhalten Sie eine konsistente Quoting-Form im Geist von shlex.quote und gängigen Shell-Helfern. Decode scannt einfach quotierte Segmente, doppelt quotierte Segmente mit dem begrenzten POSIX-Escape-Satz und unquotierte Backslash-Escapes, die das nächste Zeichen schützen oder eine Zeile fortsetzen, wenn das nächste Zeichen ein Zeilenumbruch ist. Das bevorzugte Payload-Feld ist text, mit den Aliasnamen input, value, s, payload und arg, damit Formulare, Query-Strings und SDK-Clients denselben Vertrag ohne Umbenennung von Spalten nutzen. Ein unvollständiger abschließender Backslash, ein ungeschlossenes einfaches oder doppeltes Anführungszeichen oder unquotierter Weißraum, der ein zweites argv-Wort starten würde, löst invalid_input mit einer Meldung aus, die das Problem benennt. Die Längengrenze von hunderttausend Zeichen hält den Worker-Speicher vorhersagbar und deckt trotzdem lange Pfade, Umgebungsvariablen und die meisten Einfügepuffer ab. Kombinieren Sie den kostenlosen Browserlauf auf dieser Seite mit der tarifierten API, wenn Sie dieselbe Abbildung in einer automatisierten Pipeline brauchen, ohne Shell-Quoting-Tabellen selbst neu zu implementieren. Ungültige Eingaben liefern invalid_input und werden nicht berechnet, was Validierung günstig hält, während erfolgreiche Transformationen einen festen Item-Preis von $0.002 behalten.
Wo Shell-Argument-Quoting in Entwickler-Workflows seinen Platz hat
Entwickler treffen auf Shell-Argument-Quoting, wenn sie Remote-Befehle bauen, Installationsschnipsel schreiben, docker- oder ssh-Argumentlisten zusammensetzen oder Dateipfade speichern, die Leerzeichen und Apostrophe enthalten können. Frontend- und Backend-Teams kodieren benutzerbereitgestellte Dateinamen, bevor sie sie in ein Shell-Template einbetten, damit ein einzelnes Leerzeichen oder Anführungszeichen den umgebenden Befehl nicht bricht und keine zusätzlichen Token einschleust. Qualitätsingenieure erzeugen deterministische Encode- und Decode-Paare für Vertragstests, damit Middleware, die shell-sicheres Quoting behauptet, zwischen Releases nicht still auf eine nicht-POSIX-Tabelle umschaltet. Lehrende nutzen dasselbe Werkzeug, um den Unterschied zwischen einfachen Anführungszeichen, doppelten Anführungszeichen, Backslash-Escapes und dem Grund zu vermitteln, warum leere Argumente weiterhin als Anführungszeichenpaar erscheinen müssen statt zu verschwinden. Sicherheitsprüfer nutzen Quoting-Checks als Hygiene, bevor Werte in Shell-Skripte eingefügt werden, und erinnern daran, dass Quoting kein Ersatz dafür ist, die Shell zu vermeiden, wenn eine direkte argv-Array-API verfügbar ist. Auf dieser Seite läuft die Arbeit vollständig in Ihrem Browser; über die API kostet jede erfolgreiche Abfrage $0.002, fehlgeschlagene Validierung wird nicht berechnet und nach der Antwort wird nichts gespeichert. Diese Aufteilung — freie interaktive Erkundung und eine tarifierte, identische API — passt zum restlichen KIT-Katalog der Stufe A und lässt Sie von einer Unterrichtsdemo zu einer automatisierten Pipeline wechseln, ohne das quotierte Ergebnis zu ändern. Kombinieren Sie es mit JSON-String-Escape oder URL-Prozentkodierung, wenn Sie breitere Texttransformationen brauchen, und mit anderen Kodierungsendpunkten, wenn Sie ein kleines Labor freier, deterministischer Werkzeuge für CI und Dokumentation aufbauen.
Integrationsbeispiele
Fixture- und Log-Bereinigung
Entquoten Sie shell-quotierte Fragmente aus Logs, Runbooks oder goldenen Dateien zu klarem Unicode für lesbare Diffs und Anwendungscode.
Technische Fragen
Was zählt als fehlerhaftes Quoting?
Nicht beendete einfache oder doppelte Anführungszeichen, ein abschließender Backslash am Eingabeende und unquotierter Weißraum (der ein zweites argv-Wort starten würde) scheitern mit invalid_input und werden nicht berechnet.
Was kostet der Shell-Argument-Quoter?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.