如何从文件中获取子目录列表,然后在目录中创建这些子目录?

时间:2018-11-16 03:21:15

标签: bash

当用户输入名称时,应该使用该名称创建一个新目录。
除此之外,脚本还需要查询structure1.txt中的文件/etc/scriptbuilder/str1
在此文件中,它将列出两个子目录(每行一个),然后该脚本应在用户刚刚创建并命名的新目录中创建这两个子目录。

那么脚本如何才能创建此文本文件中列出的每个子目录?
我完全迷失了。

到目前为止,这是我的代码:

 echo "Enter the project name "
 read name
 echo $name

 if [ ! -d $name ] then
 mkdir $name

 else 
 echo "The project name you entered already exists"
 fi

 cp /etc/scriptbuilder/str1/structure1.txt /$name 
 #I know this is wrong 
 because this would just copy the file over to the new directory but not actually 
 make the two subdirectories that are on the file onto the new directory

1 个答案:

答案 0 :(得分:1)

您要查找的bash命令是read
另外,您的if [ ! -d "$name" ]的语法应使用分号。
另一个通常会具有一个exit 1(或一些这样的值)。
典型的bash代码从命令行获取输入,但是您想要的就很好。

出于测试目的,我插入了一个~(波浪号),它引用了您的主目录。

该脚本应类似于:

filename="/etc/scriptbuilder/str1"
read -p "Enter the project name " name
echo "$name"
if [ ! -d ~/"$name" ]; then
  mkdir ~/"$name"
else 
  echo "The project name you entered already exists"
  exit 1
fi
while read -r line; do
  mkdir ~/"$name/$line"
done < "$filename"

您可以清理格式。