Bash 如何解决旋度:(6)不能';不解析主机
我试图在循环中使用curl调用RESTAPI,如下所示。它不工作并抛出错误Bash 如何解决旋度:(6)不能';不解析主机,bash,curl,Bash,Curl,我试图在循环中使用curl调用RESTAPI,如下所示。它不工作并抛出错误curl:(6)无法解析主机“$SERVERPROTOCOL:” 然而,若替换所有环境变量并执行命令,那个么它就可以正常工作 工作的直接命令: curl -X DELETE -k -H 'Content-Type: application/xml' -H 'Accept: application/xml' -u 'testuser:test123' -i 'https://nonprodhost:443/process/c
curl:(6)无法解析主机“$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)无法解析主机“$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
为什么我认为问题是单引号?尝试用双引号替换单引号 (参考资料:) 转换为:
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
Bash不在单引号中插入变量。您可能还需要括号:
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