我是Linux新手,我想根据用户输入的文件夹名创建一个新目录。如何通过再次请求用户的名称来在第一个目录中创建一个新目录?
代码:
#! /bin/bash
echo "Enter name of dir":
read folder1
mkdir -p $folder1
touch docu.dat
chmod 755 docu.dat我试图查看使用命令ls创建的目录列表,但没有看到列表,我想知道为什么。我还想知道如何使用bash参数执行脚本文件。请帮我改正一下。
发布于 2021-06-25 09:06:24
如果您想向用户询问第二个名称,只需向用户询问第二个名称:
#! /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"--在那里,以便脚本还可以处理以-开头的目录名。见“-”(双冲)是什么意思?。
https://unix.stackexchange.com/questions/655771
复制相似问题