シェル引数クォート
hello worldは'hello world'という安全なシェル引数1つになります。空白や引用符、アスタリスクなどの特殊記号は単一引用符で囲まれ、シェルにはただのデータとして渡ります。逆の操作で元のテキストにも戻せ、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- hello world
- 計算モード
- Encode
- 結果
- 'hello world'
- エンコード
- posix_shell
- 入力の長さ
- 11
- 出力の長さ
- 13
このシェル引数クォーターは、平文を単一のPOSIXシェル引数として安全に貼り付けられる形に変換し、引用付きシェル構文から元の文字列を戻すときも同じ対応を反転します。エンコードは shlex.quote などのツールが用いる一重引用の慣習に従います。空入力は空の一重引用符の組になり、英数字と安全な句読点だけのトークンは裸のまま残り、それ以外は一重引用で包み、内部のアポストロフィは引用終了・エスケープ引用・再開始として書き換え、シェルが未閉鎖の文字列を見ないようにします。デコードは argv の一語を、一重引用・POSIXの限定エスケープ付き二重引用・引用外バックスラッシュに沿って走査し、未終了の引用・末尾バックスラッシュ・引用外空白では明確に失敗します。途中までコピーしたコマンド断片が黙って誤ったパスになることを防ぎます。経路は完全に決定的で、同じ text と mode は常に同じ結果を返し、ネットワーク呼び出し・乱数ソルト・日付依存の近道はありません。空白を含むパスの一重引用、引用内アポストロフィの埋め込み、閉じない二重引用断片の拒否などが基本確認です。
POSIXシェル引用とは何か、このツールが返すもの
POSIXシェルはコマンド行を単語に分割し、プログラムが argv を見る前に引用規則を適用します。空白・タブ・改行は、引用内にない限り単語を区切ります。一重引用は次の一重引用まで各文字をそのまま通し、古典的で安全な手順は文字列全体を包み、内部の各アポストロフィを四文字の区切りとして挿入し、引用を閉じ、リテラルのアポストロフィを出し、再び開くことです。
二重引用はドル・バックティック・二重引用・バックスラッシュ・改行向けのより小さなエスケープ集合を許し、レガシー断片の読解には有用ですが、本ページの推奨エンコード経路ではありません。アスタリスク・疑問符・パイプ・アンパサンド・セミコロン・リダイレクト演算子などのメタ文字は、引用なしで現れるとシェル文法を変えます。
一重引用で包めば受信プログラム向けの普通のデータになります。本ランディングはエンコード側でその集合を実装し、デコード側で慎重に逆変換します。応答は引数ひとつだけで、変数展開・グロブ実行・フルパイプラインの多語分割は行いません。
壊れた引用に対する部分的な黙殺はありません。
活用例
シェル断片での安全なパス
空白・引用符・メタ文字を含むファイルパスや値を、POSIXシェルスクリプト・sshリモートコマンド・docker run 行へ貼る前にクォートします。
CI と契約テスト
決定的なクォートと解除の対を生成し、言語やリリースをまたいで同じ POSIX 安全形をパイプラインが検証できるようにします。
よくある質問
POSIXシェル引数用に文字列をどうクォートしますか?
平文を text に入れ、mode encode(既定)で送ります。空入力は '' になり、安全な裸トークンは引用なし、それ以外は各アポストロフィに '\'' を付けた一重引用になります。
シェル引用された引数をどう解除しますか?
引用済みの語を text に入れ、mode decode で送ります。
シェルコマンドを実行しますか?
いいえ。 安全な argv 用にテキストを変換するだけです。シェル起動・変数やグロブの展開・コマンド行全体の複数語分割は行いません。
テキスト内のアポストロフィはどう扱われますか?
単一引用符の中ではアポストロフィをエスケープできないため、いったん引用を閉じ、バックスラッシュ付きのアポストロフィを入れてから引用を開き直します。この4文字'\''で引数は1つのまま保たれます。
引用符で囲まれない語があるのはなぜですか?
保護が不要だからです。英字、数字と、ピリオドやスラッシュ、ハイフン、コロンなど一部の安全な記号だけでできた語はそのまま返します。それ以外の文字が1つでもあれば単一引用符で囲みます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"text": "hello world"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.shell_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
スクリプト衛生やフィクスチャ整理にはブラウザで無料、CI やバックエンドで再現可能なシェル引用が必要なときは成功リクエストごとに $0.002 で API を呼び出してください。
POSIXシェル引用とは何か、このツールが返すもの
JSON応答は常に変換後文字列の result、encode または decode を返す mode、posix_shell 固定の encoding、サイズ検証用の input_length と output_length を含みます。encode は needs_quotes と apostrophes_escaped も報告し、decode は消費した引用区間数として quote_segments を報告します。語が整形式のシェル引用であるか、invalid_input で失敗するかのどちらかです。完全なシェル解析・コマンド実行・多語分割が必要なら専用シェルやトークナイザを使い、本ランディングは単一引数の引用・解除契約のみに答え、フィクスチャや手作業で argv 断片を組み立てる API 利用に適した安定出力を返します。
text と mode の読み方、結果の再現性
mode の既定は encode で、decode を明示的に受け付けます。別名 op・direction・action は同じ切替に対応し、quote や unquote も同義語として受け付けます。encode は文字列を分類します。空は空の一重引用の組になり、英数字とアット・パーセント・プラス・等号・コロン・カンマ・ピリオド・スラッシュ・アンダースコア・ハイフンの安全な裸集合に一致するトークンは保護不要のためそのまま返され、空白・引用符・シェルメタ文字を含む他の文字は内部の各一重引用にアポストロフィ接合を伴う完全な一重引用包みを強制します。包みは左から右の一回走査で適用されるため、shlex.quote や一般的なシェル補助と同趣旨の一貫した引用形が得られます。decode は一重引用区間、POSIX限定エスケープ付き二重引用区間、次の文字を保護する(次が改行なら行継続)引用外バックスラッシュを走査します。優先するペイロード欄は text で、別名 input・value・s・payload・arg によりフォーム・クエリ文字列・SDK クライアントが列名を変えずに同じ契約を再利用できます。不完全な末尾バックスラッシュ、閉じられていない一重または二重引用、第二の argv 語を始める引用外空白は、問題を名指しするメッセージ付きで invalid_input を発生させます。長さ上限の十万文字は Worker メモリを予測可能に保ちつつ、長いパス・環境値・大半の貼り付けバッファをカバーします。シェル引用表を自分で再実装せず自動化パイプライン内で同一写像が必要なときは、本ページの無料ブラウザ実行と有料 API を組み合わせてください。不正入力は invalid_input を返し課金されません。検証を安価に保ちつつ、成功した変換は $0.002 の固定 item 価格です。
開発ワークフローにおけるシェル引数引用の位置
開発者はリモートコマンドの構築、インストール断片の記述、docker や ssh の引数リスト組み立て、空白やアポストロフィを含みうるファイルパスの保存でシェル引数引用に出会います。フロントエンドとバックエンドのチームは、ユーザー提供のファイル名をシェルテンプレートに埋め込む前にエンコードし、一つの空白や引用符が周囲のコマンドを壊したり余分なトークンを注入したりしないようにします。品質エンジニアは契約テスト用に決定的な encode・decode 対を生成し、シェル安全引用を謳うミドルウェアがリリース間で非 POSIX 表へ黙って切り替わらないようにします。教育者は一重引用・二重引用・バックスラッシュエスケープの違い、空引数が消えるのではなく引用の組として残るべき理由を教えるときに同じツールを使います。セキュリティレビュアは値をシェルスクリプトへ貼る前の衛生として引用確認を使い、直接の argv 配列 API があるときにシェルを避ける代替にはならないことを念頭に置きます。本ページでは作業がすべてブラウザ内で走り、API では成功した各照会が $0.002、失敗した検証は課金されず、応答後に何も保存されません。無料の対話探索と同一の有料 API という分割は KIT の tier-A カタログの他項目と一致し、教室デモから自動化パイプラインへ、引用結果を変えずに移行できます。より広いテキスト変換が必要なら JSON 文字列エスケープや URL パーセント符号化と組み合わせ、CI と文書化向けの無料・決定的ツールの小さな実験室を組むときは他の符号化エンドポイントとも併用してください。
連携の活用例
フィクスチャとログの整理
ログ・ランブック・ゴールデンファイルのシェル引用断片を解除し、読みやすい diff とアプリコード向けの平文 Unicode に戻します。
技術的な質問
不正な引用とは何ですか?
未終了の一重・二重引用、入力末尾のバックスラッシュ、第二の argv 語を始める引用外空白は invalid_input で失敗し、課金されません。
シェル引数クォーターの料金は?
ブラウザツールは無料です。API リクエストは成功コールごとに $0.002 の前払い KIT 残高を使い、不正入力は課金されません。