Linux shell脚本中的第一个变量被第二个变量覆盖
比如说,, 我有两个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
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}"