我正在尝试遍历csv文件中的列中的单元格,并将每个单元格指定为变量。然后,我想将该变量放入URL中,以便将csv中的单元格放入url中。当我运行脚本时,它会给出错误:" curl:(3)在URL&#34中找到非法字符;
#!/bin/bash
IFS=,
cat /Users/User/Desktop/hardwares_2018-01-23_11-02-05.csv | while read id
temp=`echo $id | sed 's/"//g'`
#echo $temp
do
curl -H "X-Application-Authorization: Bearer Token" -H 'Accept: application/vnd.application.v2.1+xml' -X DELETE https://api.application.com/hardwares/${temp}.xml
done
我的csv文件看起来像这样
1945603
1945604
1945605
1945606
1945607
1945608
1945609
1945610
1945611
1945612
有什么想法吗?
由于
答案 0 :(得分:0)
我认为你想要'做'在阅读ID之后立即进行指导'部分,而不是现在的位置。
答案 1 :(得分:0)
我认为问题出现在第一个标题-H
标志中。它在字符串中有空格,可能被解释为curl
的另一个参数。
这里我对脚本进行了一些通用的修改。我没有环境来测试它。希望它有所帮助。
$ cat test.sh
#!/bin/bash
h1flag="'X-Application-Authorization: Bearer Token'"
h2flag="'Accept: application/vnd.application.v2.1+xml'"
reqflag="DELETE"
baseurl="https://api.application.com/hardwares"
while read -r id
do
curl --verbose -H "${h1flag}" -H "${h2flag}" -X "${reqflag}" "${baseurl}/$id"
done < input.csv
上面的示例行如下所示,
$ curl --verbose \
-H 'X-Application-Authorization: Bearer Token' \
-H 'Accept: application/vnd.application.v2.1+xml' \
-X DELETE https://api.application.com/hardwares/1945603
我建议先使用cmdline
在使用脚本运行它之前使用它。