Su CentOS, non è necessario alcun pacchetto aggiuntivo:
python -c "import urllib;print urllib.quote(raw_input())" <<< "$message"
Estensione della risposta molto utile di Rockallite per Python 3 e input multilinea da un file (questa volta su Ubuntu, ma non dovrebbe importare):
cat any.txt | python3 -c "import urllib.parse, sys; print(urllib.parse.quote(sys.stdin.read()))"
Ciò comporterà la concatenazione di tutte le righe del file in un singolo URL, le nuove righe verranno sostituite da %0A
.
Vuoi $MESSAGE
essere tra virgolette, così la shell non lo dividerà in parole separate, quindi lo passerà a PHP come argomento:
ENCODEDMESSAGE="$(php -r 'echo rawurlencode($argv[1]);' -- "$MESSAGE")"