Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux shell脚本中的第一个变量被第二个变量覆盖_Linux_Shell - Fatal编程技术网

Linux shell脚本中的第一个变量被第二个变量覆盖

Linux shell脚本中的第一个变量被第二个变量覆盖,linux,shell,Linux,Shell,比如说,, 我有两个shell脚本文件名main.sh和child.sh,还有一个ini文件名param.ini In 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 在chi

比如说,, 我有两个shell脚本文件名
main.sh
child.sh
,还有一个ini文件名
param.ini

In 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
在execute main.sh之后,输出将显示您的情况,Jame将丢失。 Jame被覆盖了。 我想要的是Jame你好吗?像这样试试

 var="${param}How are you"
而不是

var=${param}How are you

使用命令
source
,而不是
进行寻源。它会起作用的

一样编写源代码。param.ini
(注意
param.ini
之间的空格)


我想换壳的方法可以。 在ini文件的值中设置关键字。比如说

key1 = valueA //'A' will be used as a key word.
在shell中,执行如下替换方法:

var = "${param/A/HowAreYou}"

我会改变。但如果我像这样使用var=“How are you”${param}//输出,则显示Jame的状态。直到不正常为止,如var=“${parm}你好”//output仅显示你好。
${parm}
-有拼写错误。另外,在
bash
中,
#
用于注释,而不是
/
为拼写错误感到抱歉。我使用var=“${param},你好吗”和#用于注释。child.sh中的更多测试也有相同的情况。在child.sh param=“$name,你好吗”//输出还有你好吗?jame不见了,但echo$name//output show jameYou know
//
不是shell注释,对吗?
var = "${param/A/HowAreYou}"