【问题标题】:How to resolve curl: (6) Couldn't resolve host [duplicate]如何解决 curl:(6)无法解析主机 [重复]
【发布时间】:2020-06-19 14:19:07
【问题描述】:

我正在尝试在循环中使用 curl 调用 rest api,如下所示。它不起作用并抛出错误curl: (6) Couldn't resolve host '$SERVERPROTOCOL:' 但是,如果替换所有环境变量并执行命令,那么它就可以正常工作。

有效的直接命令:

curl -X DELETE -k -H 'Content-Type: application/xml' -H 'Accept: application/xml' -u 'testuser:test123' -i 'https://nonprodhost:443/process/cancel/pvm:0a126'

Curl 在循环中抛出 - curl: (6) Couldn't resolve host '$SERVERPROTOCOL:'

for pi in $(cat $halted_pid);do
    # write PID to console so user knows script is working
    echo
    echo "cacnelling process instance - $pi"
    # 2>&1 to include any output on stderr
    curl -X DELETE -k -H 'Content-Type: application/xml' -H 'Accept: application/xml' -u '$USERNAME:USERPASS' -i '$SERVERPROTOCOL://$SERVERHOST:$SERVERPORT/process/cancel/$pi' 2>&1 | tee -a $halted_pi_cancellation_logfile
done

【问题讨论】:

标签: bash curl


【解决方案1】:

为什么我认为问题是单引号?尝试用双引号替换单引号

(参考:https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

curl -X DELETE -k -H 'Content-Type: application/xml' -H 'Accept: application/xml' -u '$USERNAME:USERPASS' -i '$SERVERPROTOCOL://$SERVERHOST:$SERVERPORT/process/cancel/$pi' 2>&1 | tee -a $halted_pi_cancellation_logfile

转换为:

curl -X DELETE -k -H "Content-Type: application/xml" -H "Accept: application/xml" -u "$USERNAME:USERPASS" -i "$SERVERPROTOCOL://$SERVERHOST:$SERVERPORT/process/cancel/$pi" 2>&1 | tee -a $halted_pi_cancellation_logfile

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多