【发布时间】:2017-01-04 19:07:43
【问题描述】:
我有一个装有 CentOS 6 的虚拟机,我正在从 bashrc 加载一些脚本。 一切正常,但我想将相同的代码和脚本复制粘贴到同一 VM 的旧备份中,但出现错误:“文件意外结束”。当我想与另一个人共享这些脚本时,同样的错误也不得不处理(他有相同的虚拟机)。
于是我开始调试了一下,发现他不喜欢的一行是(正在解析一个数组:
COUNTER=1
while [[ ! -z ${SCRIPT[$COUNTER]} ]]; do
而且他也不喜欢这个(它与“while”逻辑不完全相同,但它确实有效):
for i in ${Script[@]}; do
所以,我将其替换为:
for ((i = 0; i < ${#SCRIPT[@]}; i++)); do
现在我尝试使用相同的代码获取错误名称,并且不再发生错误。
我也有这种最奇怪的行为: 代码:
BASH_SCRIPTS_LOCATION='/mnt/hgfs/Shared-workspace/scripts/'
SCRIPT[0]='aliases.sh'
SCRIPT[1]='scripts_config.sh'
SCRIPT[2]='credentials.sh'
SCRIPT[3]='other_functions.sh'
SCRIPT[4]='ssh_functions.sh'
SCRIPT[5]='release_functions.sh'
SCRIPT[6]='test_functions.sh'
for ((i = 0; i < ${#SCRIPT[@]}; i++)); do
loadedScript=${BASH_SCRIPTS_LOCATION}${SCRIPT[$i]}
echo -e "$loadedScript"
done
终端输出(似乎“连接”它正在替换从第一个字符串/变量的乞求开始的字符:
aliases.shShared-workspace/scripts/
scripts_config.shworkspace/scripts/
credentials.shed-workspace/scripts/
other_functions.shorkspace/scripts/
ssh_functions.sh-workspace/scripts/
release_functions.shkspace/scripts/
test_functions.shworkspace/scripts/
我认为我使用了一些非常不合适的东西。但我不确定我应该寻找什么或什么。
欢迎任何建议或建议。
谢谢!
【问题讨论】:
-
最后一部分好像是windows的行尾。
标签: bash random centos6 behavior carriage-return