Curl not accepting spaces in script via variables

Login or Register for Dates, Times and to Reply

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Curl not accepting spaces in script via variables
# 8  
Originally Posted by say170
  --data $(printf '{
       "mName": "%s",
' "$mname")

{"message":"JSON parse error","statusCode":400}

What happens if you don't put in all the white space?

--data $(printf '{"mName":"%s","oName":"%s"}' "$mname" "$oname")

Or use an intermediate variable:
json_data=$(printf '{"mName":"%s","oName":"%s"}' "$mname" "$oname")
curl ...
   --data "${json_data}" ...

# 9  
tried both ways. removed all my white spaces and tried a variable. Here is a better code stub which shows the full data element.

json_data=$(printf '{"mName":"%s","oName":"%s","lCode":"%s","schema":[{"name": "Fred","RequestId":"1234","Name":"Test","BO":"999999","aId":"%s","keyId":"p1","eId":"Test.ts"}],"cCode":"%s","cCode2":"GB","Url":{"protocol":"http","host":"","port": 1653,"endpoints":[{"name": "requestorEndpoint","value": "mEP"}]}}' "$mName" "$oName" "$lCode" "$aId" "$cCode")

curl --request POST \
  --url \
  --header 'authorization: Bearer '$token   \               <--------- $token comes from further up in the code.
  --header 'content-type: application/json' \
  --silent \
  --data '${json_data}'             <-------- note I had to use single quotes

done < $infile

# 10  
Found a working solution here - shell - How can I use a variable in curl call within bash script - Stack Overflow

message="Hello there"
curl -X POST -H 'Content-type: application/json' --data '{"text": "'"${message}"'"}'

Far from elegant, but it works... I will play with jq when I get some time.
This User Gave Thanks to say170 For This Post:
# 11  
The goal is to have "quotes" around the text with spaces.
But you must quote these "quotes" to hide them for the shell. Place them inside 'ticks' is one method.
And you must have $variables in "quotes" for the shell - these protective quotes are removed, when passed to the curl.

'{"text": "'"${message}"'"}'

And this is a concatenation of 'string' "string" 'string' where the shell passes stringstringstring to curl.

Last edited by MadeInGermany; 09-19-2019 at 04:27 AM..
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #615
Difficulty: Medium
You can specify multi-line strings using triple quotes in Python.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script accepting variables in valid number format

Hi Experts I would like to ask if there is a way to validate if the variable passed is in this kind of sample format "06-10" or "10-01". It was really a challenge to me on how to start and echnically the "6-10" stands for "June 10" and "10-01" stands as "October 1", overall it needs to have ... (3 Replies)
Discussion started by: ersan-poguita
3 Replies

2. Shell Programming and Scripting

HELP - loop a curl command with different variables from input file

Hi guys! Kind of new to bash scripting and now I'm stuck. I need to curl with these variables: "{ \"nodename\": \"$1\", \"ipaddress\": \"$2\", \"poolname\": \"$3\", \"port\": \"$4\", \"loadbalancer\" : \"$5\" }" and my input_file.txt contains server001 serverpool1 80... (4 Replies)
Discussion started by: yort
4 Replies

3. Shell Programming and Scripting

Sending awk variables into curl in a bash script

Hello experts! I have a file1 with the following format (yr,day, month, hour,minute): 201201132435 201202141210 201304132030 201410100110 ... What i want to do is to assign variables and then use them in the curl command to download the text of each event from a web page. What I have... (6 Replies)
Discussion started by: phaethon
6 Replies

4. Shell Programming and Scripting

Spaces in variables

I'm having a problem with this.... --------------------------------------------------- #!/bin/bash SPKTAG=" | festival --tts" echo "Welcome to my shell program" "$SPKTAG"; --------------------------------------------------- I have a variable call SPKTAG " | festival --tts" and I... (2 Replies)
Discussion started by: digitalviking
2 Replies

5. Shell Programming and Scripting

script accepting password

Hi friends, I am very new to Unix scripting and having some difficulty in my first shell script. I have written a simple shell script to upload an artifact to a remote machine on the network. echo "Uploading the artifact" scp app.war (3 Replies)
Discussion started by: prashdeep
3 Replies

6. Shell Programming and Scripting

cURL and variables

I have a spent a day with Google trying to figure this one out and have decided its time to ask the experts... I'm running OS X 10.6 I need to use cURL to FTP a file. I have been successful send the file from the command line when I know the filename. My problem is that the filename changes... (2 Replies)
Discussion started by: fmSimplicity
2 Replies

7. Shell Programming and Scripting

Passing variables to cli curl

I have a script that uses cli curl, and it would be easier if it was possible to pass variables like this: curl -c $cookie -d $data www.********.comThis doesn't work, instead I have to generate a string and use eval. Is there another, easier way to pass variables to cli curl? (1 Reply)
Discussion started by: locoroco
1 Replies

8. Shell Programming and Scripting

Variables containing spaces in lpadmin

I apologize for the long post. I have a lot of info... I am trying to write a script that will add a network printer (or several) to a system using information read in from a text file. My problem is the spaces in the PPD file name, I'm not sure how to put the file name in or how to read it back... (2 Replies)
Discussion started by: HalfNube
2 Replies

9. Shell Programming and Scripting

invloking another script accepting input

hi I am trying to invoke another application script from my script like --------------------------- main . . ./new appl <<EOF Input 1 Input 2 EOF . . exit ------------------------ But is exits the new application after input command 2, I want that it should not exit and accept... (1 Reply)
Discussion started by: ashish_uiit
1 Replies

10. UNIX for Dummies Questions & Answers

removing spaces from variables?

I stored results like this VAR=`wc -l < ls.txt` But the value of the wc gave me a padded number. How do I strip the padding from $VAR? Do you think I could use SED? Except instead of a file input, have a variable redirection input? (2 Replies)
Discussion started by: yongho
2 Replies

Featured Tech Videos