Is it possible to url encode a variable within a shell script?
#!/bin/bash
now=$(date +"%T")
DATA=$(wget -q -O - "http://someurl.com/x.htm?callback=webRequest&exthrs=1&extMode=&fund=1&entitlement=0&skipcache=&extendedMask=1&partnerId=2&output=json&noform=1")
wget -q -O - "http://somewhere.com?abc=$1&responseData=$DATA"
echo "-----COMPLETE----- $now $1 $RANDOM
"
I want to url encode the DATA variable, since its results have & in it, it messes up the params in the second wget, is there a way to url encode that DATA variable without using PHP to url encode?
Introduction on Variables in shell scripting Variables in Shell Scripting: The variables are of two types of user-defined variables and system-defined variables. A variable is nothing but a name representing a piece of memory in the system that stores a particular value, and that value no need to constant, which means it can change.
We will look at the different variables that we can use that are provided by the system for the Bourne Shell and how to create custom variables to use in a shell script. Variables in shell scripts are used to store values that you need to use frequently throughout a script.
A shell script allows us to set and use our own variables within the script. Setting variables allows you to temporarily store data and use it throughout the script, making the shell script more like a real computer program.
The variable assignment is considered illegal in the following cases: The correct way to assign a variable in shell scripting is without any whitespace on either side of the assignment operator (=) which is shown as follows: Apart from an underscore as discussed in the first rule, a variable name cannot have any special character.
Here is one method for URL encoding the shell string DATA
:
DATA=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" "$DATA")
Here is another:
DATA=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$DATA")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With