1

たとえば、2 つのシェル スクリプト ファイル名main.shchild.sh1 つの 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 Jam is missing が表示されます。ジャムは上書きされます。私が欲しいのはジェームです お元気ですか

4

3 に答える 3

2

.ソースの代わりに、コマンドを使用しsourceます。それが動作します。

また

source it like (と. 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

シェルのreplaceメソッドで大丈夫だと思います。ini ファイルの値にキーワードを設定します。例えば

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

シェルでは、次のように 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 に答える