#linux #bash
#linux #bash
Вопрос:
Я новичок в Bash, и у меня есть небольшая программа, которая запрашивает ввод от 1 до 10, а затем продолжает создавать такое же количество каталогов, которое ввел пользователь. На данный момент моя программа создает все каталоги в одном месте, поэтому мне интересно, есть ли способ, которым я могу создать основную папку, а затем подкаталоги внутри друг друга.
Например:
How many directories would you like to create?
user input: 3
folder1
|-folder2
|-folder3
Я буду очень признателен за любые советы о том, как заставить мою программу делать это.
#!/bin/bash
read -p "How many directories would you like?" num_folder
if test $num_folder -lt 10
then
for ((i=0; i<num_folder; i )); do
mkdir folder$i
done
tree -c
read -rsp "Press enter to continue"
clear
else
echo "Please write a number between 1 and 10"
fi
Комментарии:
1. Выполните
cd folder$i
aftermkdir folder$i
в цикле2. О, боже мой. Большое вам спасибо!
Ответ №1:
Другим решением может быть использование -p
параметра с mkdir
.
mkdir -p "$(seq -f "folder%0.0f" -s "/" $num_folder)"
Комментарии:
1.
seq
не определен в POSIX, но вопрос помеченbash
, поэтому вы можете использовать что-то вроде$(eval printf "folder%s/" {1..$num_folder})
2. @tripleee Спасибо, что рассказали мне этот способ расширения в виде фигурных скобок.
Ответ №2:
как насчет:
seq 1 3 | xargs mkdir
вы можете просто использовать числа.