2017-02-24 51 views
0

我有一個Unix每小時運行的shell(CentOS 7上的crontab)。使用捲曲與-d param1 = value1似乎不能正常工作

在該shell中,循環讀取並繼續處理所有新文件在定義的文件夾中查找。 在每個文件的處理結束時的捲曲命令發送具有一些參數,例如:

curl https://aaaaaa.com/website -d param1=value1 -d param2=value2 .... 

每個殼通過運行crontab時,第一CURL被正確地轉換爲一個真正的URL和Apache接收到/ Tomcat,但所有其他人都不好。事實上,第二個及以下的捲髮以正確的格式似乎並不像轉換

https://aaaaaa.com/website?param1=value1&param2=value2 

但她們很快

https://aaaaaa.com/website -d param1=value1 -d param2=value2 

因此網站無法正確對待的參數發送。

爲什麼1st命令被正確轉換爲正確的URL格式,而不是以下內容?

編輯 - 編輯

外殼的一部分:

#!/bin/bash 

... 

#====================================================== 
# FUNCTIONS 
#====================================================== 

UpdateStatus() { 

    CMD_CURL="${URL_WEBSITE} -d client=CLIENT -d site=TEST -d produit=MEDIASFILES -d action=update" 
    CMD_CURL="${CMD_CURL} -d codecmd=UPDATE_MEDIA_STATUS" 
    CMD_CURL="${CMD_CURL} -d idmedia=$4" 
    CMD_CURL="${CMD_CURL} -d idbatch=$3" 
    CMD_CURL="${CMD_CURL} -d statusmedia=$2" 
    if [[ ! -z "$5" ]]; then 
     CMD_CURL="${CMD_CURL} -d filename=$5" 
    fi 
    echo "  ${CMD_CURL}" >> $1 
    CURL_RESULT=`curl -k ${CMD_CURL}` 
    CURL_RESULT=`echo ${CURL_RESULT} | tr -d ' '` 
    echo "  Result CURL = ${CURL_RESULT}" >> $1 
    if [ "${CURL_RESULT}" = "OK" ]; then 
     return 0 
    fi 
    return 1 

} 


#====================================================== 
# MAIN PROGRAM 
#====================================================== 

echo "----- Batch in progress : `date '+%d/%m/%y - %H:%M:%S'` -----" 

for file in $(ls ${DIR_FACTORY_BATCHFILES}/*.batch) 
do 

    ... 

    old_IFS=$IFS 
    while IFS=';' read <&3 F_STATUS F_FILEIN F_TYPE F_CODE F_ID F_IDPARENT F_TAGID3 F_PROF F_YEARMEDIA F_DATECOURS F_TIMEBEGINCOURS F_LANG || [[ -n "$F_STATUS $F_FILEIN $F_TYPE $F_CODE $F_ID $F_IDPARENT $F_TAGID3 $F_PROF $F_YEARMEDIA $F_DATECOURS $F_TIMEBEGINCOURS $F_LANG" && $F_STATUS ]]; 
    do 

     ... 

     UpdateStatus ${LOG_FILENAME} ${STATUS_ERROR} ${F_ID} ${F_IDPARENT} 

     ... 

    done 3< $file 
    IFS=$Old_IFS 

    ... 

done 
+0

您可以共享您的腳本的一部分關於捲曲循環嗎? – gile

+0

聽起來就像你正在做'捲曲'相當於https://aaaaaa.com/website -d param1 = value1 -d param2 = value2',這樣每個'-d'及其參數都被認爲是URL的一部分參數,而不是單獨的參數'curl'。 – chepner

回答

相關問題