小编use*_*087的帖子

如何在bash中测试文件名扩展结果?

我想在bash中检查目录是否有文件.我的代码在这里.

for d in {,/usr/local}/etc/bash_completion.d ~/.bash/completion.d
     do              
         [ -d "$d" ] && [ -n "${d}/*" ] &&                         

         for f in $d/*; do                                                                                                           
             [ -f "$f" ] && echo "$f" && . "$f"                        

         done                                                                                                                        
     done
Run Code Online (Sandbox Code Playgroud)

问题是"〜/ .bash/completion.d"没有文件.所以,$ d/*被认为是简单的字符串"〜/ .bash/completion.d/*",而不是空字符串,这是文件名扩展的结果.作为该代码的结果,bash尝试运行

. "~/.bash/completion.d/*" 
Run Code Online (Sandbox Code Playgroud)

当然,它会生成错误消息.

有谁能够帮我?

bash shell

3
推荐指数
2
解决办法
2392
查看次数

标签 统计

bash ×1

shell ×1