tzi*_*ppy 4 bash perl curl http-post
我正在运行一个 perl 脚本,它使用参数调用 bash 脚本。它从套接字读取字符串,将其拆分并将其保存到数组中。这是这样一个字符串的样子:
22.12.13 20:21:12;RING;0
Run Code Online (Sandbox Code Playgroud)
第一个数组元素是日期,它作为参数传递给 bash 脚本。在 bash 脚本中,参数作为 POST 数据传递给 curl。
我不知道如何处理字符串中日期和时间之间的空格。curl 正确执行,服务器响应 OK (200)。然而,它只是作为 POST 数据传递的第一部分(直到空格)。时间不见了。curl 给出了以下错误:
curl: (6) Couldn't resolve host '20:21'
Run Code Online (Sandbox Code Playgroud)
这些是脚本中的相关行:
#perl script
my $EXTPRO="/path/to/script.sh";
if ($_ =~ /RING/){
my @C = split(/;/);
my @args = ($EXTPRO, $nr, $C[0], "String");
system(@args);
#bash script:
curl http://url.com/add -F foo=$3 -F date=$2 -F foobar=$1
Run Code Online (Sandbox Code Playgroud)
时间正在正确传递,只是您的 bash 脚本需要根据您的错误进行编辑。
curl http://url.com/add -F foo=String -F date=22.12.13 20:21:12 -F foobar=Fake_NR_Data
Run Code Online (Sandbox Code Playgroud)
时间被视为第二个 URL。为了让您的 bash 正常工作,只需将 $2 括在引号中
#bash script:
curl http://url.com/add -F foo=$3 -F date="$2" -F foobar=$1
Run Code Online (Sandbox Code Playgroud)