无法正确识别外部变量

时间:2013-01-24 14:38:55

标签: bash

我遇到了这个问题:当我将变量放入外部“configstyle”文件并使用. /var/scripts/siDiagConfig.sh导入文件时,变量无法正常工作...... 就像我有一个名为MTU=1500的变量,当我回显它时,它打印“1500”,这是正确的。但是当我想在像somethingawesome | grep ${MTU} -c这样的grep命令中使用变量时,无法正确识别变量。在这个例子中,控制台打印0,而不是2 ...当我用MTU=1500重新分配变量时,代码工作没有任何问题.... 任何想法,我可能错过了什么?

还有其他方法,我可以将我的变量放在外部文件中吗?

我的siDiagConfig.sh文件:

#!/bin/bash
....
export MTU=1500
....

编辑(解决方案):

我记得,我在我的Windows系统上创建了该文件。我刚刚复制了siDiagConfig.sh中的代码,在unix系统上创建了一个新文件,并在那里粘贴了代码。现在它没有任何问题=)

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

[gigauser @ gigabox:/ scm / gigafolder / toratora / test_aks]

  

cat conf.config;回声-----; cat testfile.txt;回声------; cat mainfile.sh; echo --------; ./mainfile.sh

导出GIGA =千兆
出口fifa = FIFA


我是GIGA
我喜欢fifa


 #!/bin/bash

. conf.config

echo GIGA = $GIGA
echo fifa = $fifa

cat -n testfile.txt


echo
echo -- Now lets grep = $GIGA with case insensitive On
echo

echo -`grep -in "${GIGA}" testfile.txt`-; 
echo =`grep -ic  "${GIGA}" testfile.txt`=
echo
echo Now again but with case insensitive Off
echo -`grep -n "${GIGA}" testfile.txt`-;
echo =`grep -c  "${GIGA}" testfile.txt`=


GIGA =千兆
fifa = FIFA
     1我是GIGA
     2我喜欢fifa


- 现在让grep = giga,不区分大小写

-1:我是GIGA-
= 1 =

现在再次,但不区分大小写
-
= 0 =
[gigauser @ gigabox:/ scm / gigafolder / toratora / test_aks]
>

答案 1 :(得分:0)

由于对mark a comment as an answer的功能请求仍然被拒绝,我在此处复制上述解决方案。

是;那个\ r是麻烦。这是一个回车。在Unix上执行之前将DOS文件转换为Unix文件。 - 乔纳森莱弗勒

好的,现在我记得,我在我的Windows系统上创建了该文件。我刚刚复制了siDiagConfig.sh中的代码,在unix系统上创建了一个新文件,并在那里粘贴了代码。不是没有任何poroblems =)感谢你的帮助! - Simons0n