我是 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"
它们--
的存在使您的脚本也可以处理以-
.看“--”(双破折号)是什么意思?。