首页 > 解决方案 > Bash,循环通过空格分隔的数组来创建文件会导致它挂起

问题描述

正如问题标题中所述,当我将 GitBash 新安装到 Windows 10 64Bit 时,我正在尝试创建一些 5-6 个文件,并且我遇到了一个for旨在创建这些文件的悬挂循环。

现在,我在 GitBash 的主文件夹中已经存在几个文件,如下所示:

.minttyrc
.gitconfig

但是当我试图创建一个通用的一次性脚本时,我决定编写代码,以便它忽略文件是否已经存在。

因此,在看到使用~内部引号(双引号,所以甚至没有想到单引号)将其转换为文字字符串之后,因此不得不放弃以下代码:

gbfiles=(".profile" ".bashrc" ".minttyrc" ".gitconfig" ".bash_profile")
for file in ${gbfiles[@]}; do [ -f ~/$file ] || cat > ~/$file; done;

但是创建后的这段代码.profile会发疯并挂起for循环,之后不会创建单个文件。

为什么会发生这种情况(是因为循环卡在任何错误上,我使用条件来抑制/忽略错误)并且任何人都可以帮助实现预期目标吗?

标签: bashfilefor-loopgit-bashcat

解决方案


推荐阅读