GNU/Linux >> Tutoriales Linux >  >> Linux

URL que codifica una cadena en bash script

En CentOS, no se necesita ningún paquete adicional:

python -c "import urllib;print urllib.quote(raw_input())" <<< "$message"

Extendiendo la muy útil respuesta de Rockallite para Python 3 y la entrada multilínea desde un archivo (esta vez en Ubuntu, pero eso no debería importar):

cat any.txt | python3 -c "import urllib.parse, sys; print(urllib.parse.quote(sys.stdin.read()))"

Esto dará como resultado que todas las líneas del archivo se concatenen en una sola URL, las nuevas líneas se reemplazarán por %0A .


Quieres $MESSAGE estar entre comillas dobles, para que el shell no lo divida en palabras separadas, luego lo pasa a PHP como argumento:

ENCODEDMESSAGE="$(php -r 'echo rawurlencode($argv[1]);' -- "$MESSAGE")"

Linux
  1. ¿Cómo depurar un script Bash?

  2. Cómo dividir una cadena en Bash Script

  3. Ejecutar script bash desde URL

  4. nombre base con espacios en un script bash?

  5. ¿Qué hace 'bash -c'?

Bash concatenar cadenas

Sustitución de cadena en Bash

35 ejemplos de secuencias de comandos Bash

Bash Scripting – Manipulación de cadenas

Cómo ejecutar un script Bash

Compruebe si alguno de los parámetros de un script bash coincide con una cadena