Недавно в университете мы начали работать с Linux и Bash. У нас есть задача, в которой мы должны создать 5 каталогов с именами Directory1
, Directory2
и так далее. В каждом каталоге мы должны создать 10 файлов с одним случайным числом внутри.
Я начал так, но не знаю, что делать дальше:
#!/bin/bash
for i in {1..5}
do
mkdir "Directory${i}"
done
Не могли бы вы мне помочь?
На самом деле, я думаю, что вы должны делать свою домашнюю работу, и ваш вопрос включает в себя некоторые из необходимых знаний.
Несмотря на это, здесь у вас есть единственная строка, которая соответствует вашим требованиям, если я вас правильно понял:
for i in {1..5}; do mkdir "Directory${i}"; for j in {1..10}; do echo $RANDOM > "Directory${i}/File${j}"; done; done
Вот еще одно однострочное решение, использующее расширение скобок для создания каталогов и файлов и цикл for для генерации случайных чисел и добавления их в каждый файл. (спасибо @pLumo за предложение):
mkdir -p Directory{1..5} && for f in Directory{1..5}/{1..10}.txt; do echo "$RANDOM" > "$f"; done
Параметр -p
указывает mkdir
создавать любые родительские каталоги указанного вами пути (здесь не актуально), а также сообщает он не даст сбой, если каталог уже существует (чтобы вы могли снова запустить ту же команду).