Создавайте новые каталоги с 10 текстовыми файлами в них и в этих файлах 1 случайное число

Недавно в университете мы начали работать с Linux и Bash. У нас есть задача, в которой мы должны создать 5 каталогов с именами Directory1 , Directory2 и так далее. В каждом каталоге мы должны создать 10 файлов с одним случайным числом внутри.

Я начал так, но не знаю, что делать дальше:

#!/bin/bash 
for i in {1..5}
do
    mkdir "Directory${i}"
done

Не могли бы вы мне помочь?

0
задан 1 December 2020 в 16:45

2 ответа

На самом деле, я думаю, что вы должны делать свою домашнюю работу, и ваш вопрос включает в себя некоторые из необходимых знаний.

  • Вы понимаете циклы.
  • Вы должны сделать цикл внутри своего первый цикл.
  • Вы должны исследовать, как получить случайное число.

Несмотря на это, здесь у вас есть единственная строка, которая соответствует вашим требованиям, если я вас правильно понял:

for i in {1..5}; do mkdir "Directory${i}"; for j in {1..10}; do echo $RANDOM > "Directory${i}/File${j}"; done; done
5
ответ дан 3 January 2021 в 22:47

Вот еще одно однострочное решение, использующее расширение скобок для создания каталогов и файлов и цикл for для генерации случайных чисел и добавления их в каждый файл. (спасибо @pLumo за предложение):

mkdir -p Directory{1..5} && for f in Directory{1..5}/{1..10}.txt; do echo "$RANDOM" > "$f"; done

Параметр -p указывает mkdir создавать любые родительские каталоги указанного вами пути (здесь не актуально), а также сообщает он не даст сбой, если каталог уже существует (чтобы вы могли снова запустить ту же команду).

4
ответ дан 3 January 2021 в 22:47

Другие вопросы по тегам:

Похожие вопросы: