Linux / Shell

Shell 转义保留每个参数的边界

选择目标 Shell,输入原始参数;需要命令预览时,再单独填写程序名或路径。

Shell 转义

原始参数

引用结果 / 命令预览

所有处理均在当前浏览器内完成,不执行命令,也不上传输入。

引用选项

只填一个程序名或路径,不含选项;留空则仅输出参数。

数组模式只接受字符串,保留空字符串与参数内的换行。

限制:输入与命令合计 65,536 个字符;最多 1,000 个参数。

仅处理一层 Shell 引用;不适用于 CMD、嵌套命令或 Windows 原生程序传参规则。

已生成 1 个参数;预览未执行。

Shell 转义适用于带空格的文件路径、含单引号的人名,以及含美元符号的配置值。同一段文字粘到终端后可能被拆成多个参数,也可能触发变量展开,问题往往出在引用方式上。

先确定参数数量,再处理引号。单参数模式把编辑区整体当作一个值;数组模式则以 JSON 字符串的边界为准,空字符串与参数内部的换行都能明确表示。

为什么使用 Shell 转义

空值也有自己的位置

Shell 转义会把 ["", "two words"] 保留为两个参数。第一项虽然没有字符,仍然占一个位置;第二项里的空格属于值本身。工具不修剪首尾空白,也不排序或去重。

三个独立参数卡片依次进入引用框,空卡片仍保留自己的位置。

切换规则,不改原始内容

POSIX 遇到内部单引号时先结束引用,再拼接字面单引号;PowerShell 使用重复引号。切换目标后可直接比较两种形式,原始输入和弯引号字符保持不变。

同一个输入沿两条路径进入不同的引用结构,表示两种 Shell 语法。

先分清一个值与一组值

01

区分空参数与零参数

JSON 数组 [] 表示没有参数,[""] 表示一个空参数。单参数模式下,空编辑区也能手动生成空字符串的引用;清空操作则会取消待执行任务并清除结果。

  • 数组字符串中的 \n 表示该参数内部换行,不是两个参数。
02

把程序名称单独填写

命令字段只接收一个程序名或路径。选项和值放入参数数组,不能连同程序名一起塞进命令字段。PowerShell 的引号路径需要 & 调用运算符,预览会自动补上。

  • 包含空格的命令字段始终是一个路径,不会被拆成程序和选项。
03

确认数量后再导出

默认停顿 350 毫秒自动生成;关闭自动转换后显示主按钮,也可按 Ctrl/Cmd + Enter。修改输入或选项会立即禁用复制和下载,直至结果更新。

  • 载入示例和清空均先预览替换数量;撤销同时恢复输入与结果。

按真实参数生成字面引用

POSIX 与 Bash 字符引用

Shell 字符转义采用统一的单引号形式。美元符号、通配符、分号、反引号和命令替换文字都作为普通字符保留,不让原始参数意外变成语法。

处理 PowerShell 弯引号

除 ASCII 单引号外,还分别重复 U+2018 至 U+201B 四种单引号字符。反斜杠保持原样;单参数中的 Windows 路径无需写成 JSON,数组模式才使用 JSON 转义。

完整预览与文本导出

每项分别引用后用空格连接,状态行显示参数数量。可添加程序名形成命令预览,复制完整结果或下载文本。空数组且未填程序名时没有可导出的内容。

引用规则与适用边界

只处理一层 Shell 语法
不生成 CMD、批处理、fish、.env 或嵌套 SSH 引用。PowerShell 输出仅表示语言层的字面值;旧版 Windows PowerShell、Legacy 模式和原生程序还可能再次解析参数。
输入必须是原始值
不会解析完整命令、反转义、展开变量或从文件及 URL 导入。数组模式输出参数序列,不生成 Bash 数组变量声明。已有引号若粘入单参数模式,会被当作值的一部分。
引用不等于操作安全检查
工具不执行命令、不检查程序是否存在,也不判断 --delete 等选项的含义。参数以连字符开头时仍可能是程序选项,不会自动插入 -- 终止符。
长度与类型有明确限制
原始输入和命令字段合计最多 65,536 个 UTF-16 代码单元,数组最多 1,000 项。数字、布尔值、null、对象和嵌套数组都会报错,不会自动转换成字符串。
拒绝无法完整表达的字符
NUL 和孤立 Unicode 代理项会被拒绝,避免导出时悄悄丢失内容。空格、制表符、换行会保留,因此结果可能跨多行;非法数组成员会标出起始位置与参数编号。

Shell 转义常见问题

Bash 单引号字符串里怎么包含单引号?

POSIX 单引号内部不能直接放单引号,需要先结束当前引用,在外部写入字面单引号,再恢复引用。例如 O'Brien 会变成 'O'\''Brien',工具会处理每一个这样的字符。

Shell 单引号和双引号有什么区别?

单引号保持内容的字面值,双引号仍允许 $HOME 和 $(...) 等展开。本页只生成字面引用;如果希望变量参与计算,应在真正的脚本中明确编写相应语法。

Shell 参数包含空格怎么传递?

每个参数分别引用,不要把完整命令当作一个参数。若两个值都含空格,使用数组模式输入两个 JSON 字符串,生成后确认状态行显示两个参数。

按分隔符拆分后空参数丢失怎么办?

按空白或分隔符拆分容易丢掉空项。这里 ["a", "", "b"] 会保留三个参数,[] 是零参数,[""] 则是一个空参数,不靠空行猜测边界。

PowerShell 单引号字符串怎么包含单引号?

可以。PowerShell 将内部单引号写两次,例如 'don''t'。它也把弯单引号当作引号,因此本工具会分别重复这些字符。此规则不能替代 CMD 或 Windows 原生程序的参数规则。

权限结果不符合预期?

先核对参数,再复制预览

使用 Shell 转义时,请选择实际粘贴目标的 Shell,检查参数数量与当前预览,再复制已经更新的结果。