我正在尝试通过以下 shell 脚本使用 mkdir 批量创建目录是脚本
#!bin/bash
mkdir /tmp/report*/testfolder*/testdoank
Run Code Online (Sandbox Code Playgroud)
当我运行它时出现错误
-bash: ./makefolder.sh: bin/bash: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
怎么了?
除了 hashbang 中的无效路径(这是您得到的错误的原因)之外,您还存在mkdir命令本身的问题。
请记住,globs 仅用于列出现有文件,因此任何看起来像的东西mkdir /tmp/foo*只会将现有目录作为参数传递给mkdir. 如果/tmp/foo1存在,它将被传递给mkdir,然后它会抱怨它已经存在。如果/tmp/foo2 不存在,则不会传递给mkdir,也不会创建。您必须执行其他操作才能创建新目录。
目前还不清楚你想创建什么目录,但假设你想testdoank在每个匹配的目录下创建一个目录/tmp/report*/testfolder*,那么这样的事情可能会做:
for dir in /tmp/report*/testfolder*; do
mkdir "$dir"/testdoank
done
Run Code Online (Sandbox Code Playgroud)