我定義一個變量變量替換到BASH它看起來像這樣bash shell的問題
EXPORT_FLT_2="<ngc_filter_configuration><ngc_filters><ngc_filter>ngc_filter_operator operator='and'><ngc_filter_term type='ip' value='192.168.175.99'/><ngc_filter_term type='ip' value='72.32.127.138'/></ngc_filter_operator></ngc_filter></ngc_filters></ngc_filter_configuration>";
現在我想在我的shell腳本,它看起來像
. /mnt/.kumara/automation/exportcli.cfg
${PA_HOME}/exportcli -v -1:-1:-1:-1 0x1A2B3C4D $TFA_TRACE_FILE $TFA_ip $TFA_ifn $TFA_ST $TFA_ET "$1" &> /dev/null
md5sum ${TFA_TRACE_FILE}1.cap | cut -d' ' -f1
rm ${TFA_TRACE_FILE}1.cap
使用這個變量來取代
除了「$ 1」之外,所有變量都在exportcli.cfg文件中定義 現在執行腳本之後,如
$./export.sh "$EXPORT_FLT_2"
Insted的變量的實際替代我看到沒有參數傳遞。我在這裏錯過了什麼嗎?
這很奇怪。你可以在開頭打印$ 1和/或用'sh -x'執行shell腳本嗎?這會給你提示。 –
你怎麼知道沒有參數被傳遞?你有錯誤信息嗎?在這種情況下,你可以發佈它嗎?如果你的exportcli程序試圖在stdout而不是stderr上報告錯誤,你能刪除>/dev/null嗎? –
使用'-x'我得到了下面的結果'++。 /mnt/.kumara/automation/exportcli.cfg +++ TFA_ST = 1312464957000 ... <所有剩餘的取代> +++ EXPORT_FLT_2 = ' ngc_filter_operator> ngc_filters> ngc_filter_configuration>' ++ echo'但'echo $ 1'結果爲空 –