【发布时间】:2014-01-05 16:55:34
【问题描述】:
这个我看不懂…… 我有带有变量的 .sh 文件(varsource.sh)
var1=AppleOrange
var2=Mango
现在我在我的 test.sh 脚本中采购我的 varsource.sh
#!/bin/ksh
. ./varsource.sh
appended=$var1$var2
echo $appended
varloc1=aPPLEoRANGE
varloc2=mANGO
locappended=$varloc1$varloc2
echo $locappended
上面脚本的输出是
MangoOrange
aPPLEoRANGEmANGO
当我使用源文件中的变量和脚本的本地变量时,我预计会有类似的行为。 如果是源文件中的变量,第二个变量是替换第一个变量的字符而不是追加。
更多观察:
. ./varsource.sh
appended=${var1}xx
echo $appended
输出:xxpleOrange
但附加到变量的左端是有效的
. ./varsource.sh
appended=xx$var1
echo $appended
输出:xxAppleOrange
有人可以帮我理解这种行为吗?如果是源变量,我应该怎么做才能执行附加?
【问题讨论】:
-
如果您在如何移除 CR 方面需要帮助,请大声喊叫。但是,有一些关于 SO 的问题讨论了许多方法,例如How to convert DOS/Windows newline to Unix newline in a Bash script。
-
@Jonathan 谢谢它成功了。我使用 tr -d '\015'
UNIX-file 替换了 CR