#498 · Utilidad y seguridad

Escapador de argumentos de shell

Convierte texto arbitrario en una cadena que puede representar un solo argumento en un shell. Incluye modos separados para POSIX sh/bash y PowerShell porque sus reglas de quoting no son iguales.

Entrada de texto

Procesamiento local
Espacio publicitario

Cómo usar esta herramienta de texto

  1. Introduce exactamente un argumento, no una línea de comandos completa.
  2. Elige POSIX o PowerShell.
  3. Ejecuta el escape.
  4. Inserta el resultado únicamente en la posición de un argumento y evita volver a evaluarlo.

Qué hace esta herramienta

En POSIX usa comillas simples y transforma cada apostrofe interno mediante la secuencia segura de cierre, comilla escapada y reapertura. En PowerShell duplica los apóstrofes dentro de una cadena entre comillas simples.

El objetivo es representar un único argumento literal. No analiza una orden completa ni decide qué programa debe ejecutarse.

El quoting depende del shell y del punto exacto donde se inserta el valor. No uses eval, Invoke-Expression ni capas adicionales de interpretación sobre el resultado.

Ejemplo

POSIX: texto con ' se representa dentro de una cadena con comillas simples mediante la secuencia '"'"'.

Casos de uso

  • Proteger nombres de archivo con espacios al construir scripts.
  • Mostrar ejemplos reproducibles en documentación.
  • Pasar texto con metacaracteres como un único argumento literal.

Consejos para obtener mejores resultados

  • Revisa el resultado antes de usarlo en producción.
  • Prueba también entradas con tildes, ñ, emoji y saltos de línea.
  • Conserva una copia del texto original si la transformación no es reversible.
  • Evita aplicar varias conversiones consecutivas sin comprobar el efecto.

Detalles del procesamiento

El modo POSIX produce una cadena encerrada entre apóstrofes y sustituye cada apóstrofe interno por la secuencia clásica de quoting. PowerShell duplica los apóstrofes internos.

No cubre cmd.exe ni quoting específico de APIs como CreateProcess. Tampoco hace segura una línea si después se reinterpreta con eval.

Preguntas frecuentes

¿Cómo puedo escapar un argumento con espacios para bash o sh?

Una forma robusta es encerrarlo entre comillas simples. La herramienta además maneja apóstrofes internos mediante una secuencia de cierre y reapertura.

¿Por qué el escape para PowerShell es diferente del de bash?

Cada shell tiene su propio parser. En una cadena de comillas simples de PowerShell, un apóstrofe literal se representa duplicándolo.

¿Puedo pegar una línea de comandos completa y escaparla con esta herramienta?

No es el uso recomendado. Está diseñada para un único argumento. Escapar una orden completa puede cambiar su estructura o producir una falsa sensación de seguridad.

¿Esto protege si luego uso eval o Invoke-Expression?

No. Las capas adicionales de evaluación vuelven a interpretar el texto y pueden invalidar el quoting original. Evita esas funciones con datos no confiables.

¿El resultado sirve también para cmd.exe de Windows?

No. cmd.exe tiene reglas distintas. Usa el modo PowerShell solo para PowerShell y el modo POSIX para shells compatibles con sh.

Resumen de reglas

ElementoTratamiento
ShellEstrategia
POSIX sh / bashComillas simples + reapertura
PowerShellComillas simples + apóstrofe duplicado
eval / Invoke-ExpressionNo recomendado

Explorar la categoría

Consulta más utilidades para preparar, comprobar y transformar texto de forma segura.

Ver Utilidad y seguridad