例如,
我有两个shell脚本文件名main.sh
和child.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后输出显示你和Jame是如何丢失的。 詹姆斯被淹没了。 我想要的是 Jame你好吗
答案 0 :(得分: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
答案 1 :(得分:1)
我认为使用shell的替换方法是可以的。 在ini文件的值中设置关键字。例如
key1 = valueA //'A' will be used as a key word.
在shell中,实现replace方法如下:
var = "${param/A/HowAreYou}"
答案 2 :(得分:0)
试试这个
var="${param}How are you"
而不是
var=${param}How are you