繁体   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