簡體   English   中英

Bash Shell變量替換問題

[英]Bash Shell variable substitution issue

我已經定義了一個要替換為BASH的變量,如下所示

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"

在實際替換變量的情況下,我看不到任何參數正在傳遞。 我在這里想念什么嗎?

我無法立即在此處發現錯誤,但這是我會嘗試的方法。

1:在外殼echo $EXPORT_FLT_2中運行echo $EXPORT_FLT_2以確認您定義的變量確實已定義。

2:從頂部開始依次在echo $1 export.sh腳本的各個位置粘貼echo $1 查看變量是否在某個地方變形。

3:運行sh -x export.sh "$EXPORT_FLT_2"以查看腳本在每個步驟中實際執行的操作。

這應該有助於更准確地推斷出正在發生的事情以及錯誤的起源。

更新資料

看來EXPORT_FLT_2變量是在您的配置文件中定義的,而不是在您的Shell中定義的。 嘗試將腳本中的$1更改$1 ${!1}然后將腳本調用為

$ ./export.sh EXPORT_FLT_2

(請注意,變量名上沒有$裝飾)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM