在bash中同时创建文件夹
问题描述:
我需要创建一些具有相同名称但末尾带有数字的文件夹。在bash中同时创建文件夹
用户应该写一个数字,脚本应该创建这些数量的文件夹。我不知道如何链接数字和数字文件夹。
这里是我的脚本
#!/bin/bash
echo "(1617S2)" A.C.B.S
pwd
date
NOM="A.C.B.S"
echo $NOM
echo -n "Introduce el numero de carpetas que quieras :"
read x
if (($x<=10)); then
echo "Son $x carpetas"
else (($ <10))
echo -n "El número de carpetas tiene que ser entre 1 i 10 :"
read x2
echo "Son $x2 carpetas"
fi
cd ..
cd /var
sudo mkdir carpetaprincipal
cd ..
cd /var/carpetaprincipal
sudo mkdir carpeta {1..10}
答
你可以使用seq
与xargs
迭代和创造选择的文件夹的数量输入:
#!/bin/bash
echo "(1617S2)" A.C.B.S
pwd ; date
NOM="A.C.B.S" ; echo $NOM
function makeFolders() {
echo -n "Introduce el numero de carpetas que quieras :"
read -r x
if [[ "$x" -lt 11 ]] && [[ "$x" -gt 0 ]]; then
echo "Son $x carpetas"
cd ../var || exit
mkdir carpetaprincipal
cd carpetaprincipal || exit
seq "$x" | xargs -I{} mkdir carpeta_{}
fi
if [[ "$x" -lt 1 ]] || [[ "$x" -gt 10 ]]; then
echo "El número de carpetas tiene que ser entre 1 i 10!"
makeFolders # you could optionally exit 1 here
fi
}
makeFolders
您的脚本还存在其他一些问题,主要是逻辑没有意义。如果您输入的数量超过10个或少于1个,那么该脚本仍然允许用户创建文件夹,该文件夹的上方低于应允许的数量。将这些方法放在一个函数中也可以让你在出现错误时返回输入行。另外,read
应该包括-r
,否则它有可能破坏反斜杠。
+0
非常感谢!真的很有用:) – acbernal
脚本中存在什么问题? –