curl命令不接受来自文件的输入

时间:2016-02-25 06:37:29

标签: bash curl

我正在尝试运行curl命令,例如:

    var styles = new StyleSheet();
    styles.LoadTagStyle("body", "border", "1");
    htmlparser.SetStyleSheet(styles);

以上工作正常。但是,当我放置

curl -Sks -XPOST https://localhost:9999/some/local/service -d 'some text arguments'

在文件中并将命令调用为:

'some text arguments'

我从服务中得到很多例外。有谁知道这是为什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果文件包含'some text arguments',那么您的命令等同于:

curl -Sks -XPOST https://localhost:9999/some/local/service -d \'some text arguments\'

- 也就是说,它将'sometextarguments'作为curl的三个独立参数传递。

相反,您应该只在文件中放入some text arguments(没有单引号),然后运行此命令:

curl -Sks -XPOST https://localhost:9999/some/local/service -d "`cat file_with_args`"

(将`cat file_with_args`部分包装在双引号中,以便生成的some text arguments不会被拆分为单独的参数。)

顺便提一下,我建议编写$(...)而不是`...`,因为它通常更强大(尽管在您的特定命令中它没有任何区别)。