我遇到了这个问题:当我将变量放入外部“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系统上创建了一个新文件,并在那里粘贴了代码。现在它没有任何问题=)
感谢您的帮助!
答案 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