2017-03-24 5 views
0
curl -X DELETE -d '{"ruleid": "${value}"}' 'http://192.168.0.12:8080/wm/firewall/rules/json' 

Dieser Befehl kann nicht korrekt ausgeführt werden. Ich weiß nicht, wie ich mit diesem Wertparameter umgehen soll. Wie benutzt man die Anführungszeichen?Shellskript curl REST API - zitiere Probleme

#! /bin/bash 
# delete a firewall rule 
value=x 
if [ $1 != "" ]; then 
value=$1 
echo "$value" 
curl -X DELETE -d '{"ruleid": "${value}"}'  http://192.168.0.12:8080/wm/firewall/rules/json 
exit 0 

else 
    echo "no parameter " 
    exit 0 
fi 
+2

Ein hilfreicher Beitrag hier sein: [Unterschied zwischen einfachen und doppelten Anführungszeichen in Bash] (http://stackoverflow.com/a/42082956/6862601) – codeforester

Antwort

3

Dieses Beispiel ist ein Alptraum zu zitieren, aber hier ist die korrekte Syntax:

curl -X DELETE -d '{"ruleid": "'"$value"'"}' 
#        ||  | 
# here we close the single quote +|  + the same applies for closing 
#         | 
#  here we open double quotes +       

Sie sollten alles in einfache Anführungszeichen ein, mit Ausnahme der Variablen, die in doppelten Anführungszeichen ist.

wäre eine Alternative

curl -X DELETE -d "{\"ruleid\": \"$value\"}"