【发布时间】:2017-07-10 01:13:01
【问题描述】:
我的 bash 脚本被写入到当前目录中的每个子文件夹:
for d in */;
do
target=${d%/}
cd "$target"
done
当我运行我的 bash 脚本时,我收到一个存在目录的 cd 错误:
++ for d in '*/'
++ target='Zelkova serrata'
++ cd 'Zelkova serrata'
./script7.sh: line 8: cd: Zelkova serrata: No such file or directory
然而,在终端命令行中,我可以在与脚本相同的目录中执行cd 'Zelkova serrata',一切都很好。 bash 脚本的源目录是否可能与其所在的目录不同?
【问题讨论】:
-
在使用 Linux 时,我倾向于尽可能避免使用带有空格的文件和目录名称。 CamelCase 或 under_score 几乎一样易于阅读、更常见且更安全。
-
@Paul:绝对同意!不幸的是,我在继承代码时没有设计它的结构
-
在
cd $target之前添加pwd,看看这是否揭示了任何有趣的东西......