带有换行符的bash中带有cURL的Urlencode

Fre*_*sen 4 bash curl newline

我正在尝试向我们的 SMS 网关发送请求,我想在发送的 SMS 中放入一些换行符。

到目前为止,我得到了这个:

/usr/local/bin/curl -G --data-urlencode "text=*****centreon Notification *****\n\nType:$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\nDate/Time: $DATE$" "http://192.168.11.248:13013/cgi-bin/sendsms?username=user&password=password&from=12345678&to=87654321"
Run Code Online (Sandbox Code Playgroud)

但是,这行不通,因为我\n在 SMS 中收到了所有's,应该有一条新线路。

我有一个可以运行的 PHP 脚本\n,但是由于我无法调用 PHP 脚本,因此我必须使用 oneliner 来执行此操作,其中 cURL 发挥作用。

tri*_*eee 5

您可以在 Bash 中的带引号的字符串中嵌入换行符,很简单。

/usr/local/bin/curl -G --data-urlencode "text=*****centreon Notification *****

Type:$NOTIFICATIONTYPE$
Host: $HOSTNAME$
State: $HOSTSTATE$
Address: $HOSTADDRESS$
Info: $HOSTOUTPUT$
Date/Time: $DATE$" "http://192.168.11.248:13013/cgi-bin/sendsms?username=userpassword=password&from=12345678&to=87654321"
Run Code Online (Sandbox Code Playgroud)

尾随美元符号应该完成什么?

如果您愿意,Bash 有一种用于字符串转义的语法,例如$'Hello\nworld'. 注意开盘价前的美元符号。