在bash中同时创build文件夹

我需要创build一个同名的文件夹,但最后还要有一个数字。

用户应该写一个数字,脚本应该创build这些数量的文件夹。 我不知道如何链接数字和数字文件夹。

这是我的脚本

#!/bin/bash echo "(1617S2)" ACBS pwd date NOM="ACBS" 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} 

您可以使用seqxargs迭代并创建为输入选择的文件夹数量:

 #!/bin/bash echo "(1617S2)" ACBS pwd ; date NOM="ACBS" ; echo $NOM function makeFolders () { echo -n "Introduce el numero de carpetas que quieras :" read -rx 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 ,否则它有可能破坏反斜杠。

在循环变量次数时要做多个mkdir

 x2=4 i=1 while [ "$i" -le "$x2" ] do sudo mkdir carpeta$1 i=$(($i + 1)) done