使用用户输入命名文件夹

使用用户输入命名文件夹

我是 Linux 新手,想根据用户输入的文件夹名称创建一个新目录。如何通过再次向用户询问名称来在第一个目录中创建一个新目录?

代码:

#! /bin/bash
echo "Enter name of dir":
read folder1
mkdir -p $folder1
touch docu.dat
chmod 755 docu.dat

我尝试查看使用命令创建的目录列表ls,但我没有看到该列表,我想知道为什么。我还想知道如何使用 bash 参数执行脚本文件。请帮我改正。

答案1

如果您想询问用户第二个名字,只需询问用户第二个名字即可:

#! /bin/bash
echo "Enter name of dir":
read folder1
echo "Enter name of sub-dir":
read folder2
mkdir -p -- "$folder1/$folder2"
touch docu.dat
chmod 755 docu.dat

尽管我怀疑您想docu.dat在刚刚创建的目录中创建,在这种情况下您需要这样:

#! /bin/bash
echo "Enter name of dir":
read folder1
echo "Enter name of sub-dir":
read folder2
mkdir -p -- "$folder1/$folder2"
touch -- "$folder1/$folder2"/docu.dat
chmod 755 -- "$folder1/$folder2"/docu.dat

但是,作为一般规则,请尽量避免提示用户输入。这使得脚本很难自动化,很难重新运行,用户很容易输入错误的值等。相反,将目录名称作为参数:

#! /bin/bash
dirName="$1/$2";
mkdir -p -- "$dirName"
touch -- "$dirName"/docu.dat
chmod 755 -- "$dirName"/docu.dat

然后像这样运行脚本:

./script.sh "dir1" "dir2"

它们--的存在使您的脚本也可以处理以-.看“--”(双破折号)是什么意思?

相关内容