当用户输入名称时,应该使用该名称创建一个新目录。
除此之外,脚本还需要查询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
答案 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"
您可以清理格式。