我有以下 for 循环:
for f in ~/.lo-rcs/common/*
do
. $f
done
Run Code Online (Sandbox Code Playgroud)
这是返回此错误:
bash: /home/sk/.lo-rcs/common/*: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我一直将我的 bashrc 命令分类到多个单独的文件中,并将它们保存在$HOME/.lo-rcs/common
. 我希望所有文件都自动导入 Bash,但它不断抛出“没有这样的文件...”错误。
为什么 Bash 不搜索与通配符模式字符串同名的文件?
.lo-rcs/common
是我的本地 rc 配置文件夹,其中包含单独的别名文件,一个用于导出变量,一个用于函数等,以便于维护。.lo-rcs/common
都是隐藏文件,也就是。以点开头的文件。~/.lo-rcs/common/*
匹配该目录中的所有非隐藏文件,如果该目录中没有文件或所有文件都被隐藏,则模式评估为自身,导致您的错误消息。
没有充分的理由隐藏这些文件。- 只需重命名它们,一切都会按预期进行。
如果您真的希望隐藏这些文件,则可以使用~/.lo-rcs/common/.*
. 但请注意,这包括.
和..
。