1

例如,我有两个 shell 脚本文件名main.shchild.sh一个 ini 文件名param.ini

在 main.sh

#!/bin/bash
./usr/child.sh
echo $param // show Jame
var=${param}How are you
echo $var // output show only How are you and  Jame is overwrited.The output should Jame How are you

在 child.sh

#!/bin/bash
./usr/param.ini

param=$name
echo $param // show Jame

在 param.ini 中

 name=Jame

执行 main.sh 后,输出显示 How are you and Jame 不见了。詹姆斯被覆盖。我想要的是詹姆 你好吗

4

3 回答 3

2

而不是.采购,使用命令source。它会起作用的。

或者

源它喜欢. param.ini(注意和之间的.空间param.ini

sgeorge-mn:~ sgeorge$ cat main.sh 
#!/bin/bash
source child.sh
echo "$param"
var="${param}, How are you"
echo "$var"

sgeorge-mn:~ sgeorge$ cat child.sh 
#!/bin/bash
source param.ini
param=$name
echo $param

sgeorge-mn:~ sgeorge$ cat param.ini 
name=Jame

sgeorge-mn:~ sgeorge$ bash main.sh 
Jame
Jame
Jame, How are you
于 2013-01-23T06:08:08.427 回答
1

我认为用shell的replace方法就可以了。在 ini 文件的值中设置关键字。例如

key1 = valueA //'A' will be used as a key word.

在shell中,实现replace方法如下:

var = "${param/A/HowAreYou}"
于 2013-01-23T10:52:32.937 回答
0

像这样试试

 var="${param}How are you"

代替

var=${param}How are you
于 2013-01-23T05:51:14.327 回答