Я должен создать 100 файлов с помощью сценария Linux, которые содержат 30 случайных паролей символов, и тот пароль содержат только строки, строчные буквы и большие буквы. И названием каждого файла будет "Business.txt"
#!/bin/bash
for n in {1..100}; do
{ < /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-30};echo; } > /mnt/mymnt/passwords/$n done
Это не хорошая практика для открытия файла сто раз, когда этому на самом деле было нужно только однажды, таким образом, как насчет этого:
#!/bin/bash
random=$(</dev/urandom tr -dc A-Za-z0-9 | head -c3000)
for i in {1..100}; do
echo ${random:(i-1)*30:30} >/mnt/mymnt/passwords/Business$i.txt
done
Это сначала сохраняет 3 000 случайных соответствий символов A-Za-z0-9
в переменной $random
и затем циклы по номерам 1-100, исключающим части 30 символов и сохраняющим их.
При записи этого ответа я думал, что можно получить то, что Вы хотите следующий путь, но еще не ясно, как Вы хотите сохранить пароли.
Каталог изменения туда, где Вы хотите записать файл Business.txt
.
Тест, что можно создать файл вручную,
echo 'testing' > Business.txt
cat Business.txt
Измените владение и полномочия при необходимости. Метод зависит от файловой системы.
Создайте пароли,
for n in {1..100}; do { < /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-30};echo; } ;done > Business.txt
Регистрируйте пароли Business.txt
$ cat Business.txt
7rmJFCq2CZ9azpuxywFLwbjhmL2dD4
dtLSVAEtDmyLUglkYFgUeGc9PDKBPb
E3bnJ8WF4qoyS1Tokp6reAcpIkuLUt
Y5whhtbJn1KfAccp85547gNDji2xLY
...
Должно быть 100 строк
$ wc -l Business.txt
100 Business.txt
Править:
Вы хотите 100 файлов с различными именами (и один пароль в каждом файле). Таким образом, шаги могут быть изменены согласно этому после списка.
2.1. Удалите тестовый файл.
rm Business.txt
Измененная командная строка: запишите в конечные файлы в цикле.
for n in {1..100}; do { < /dev/urandom tr -dc A-Za-z0-9 | head -c${1:-30};echo; } > Business"$n".txt; done
Проверьте, что файлы были записаны
$ ls
Business100.txt Business28.txt Business46.txt Business64.txt Business82.txt
Business10.txt Business29.txt Business47.txt Business65.txt Business83.txt
Business11.txt Business2.txt Business48.txt Business66.txt Business84.txt
Business12.txt Business30.txt Business49.txt Business67.txt Business85.txt
Business13.txt Business31.txt Business4.txt Business68.txt Business86.txt
Business14.txt Business32.txt Business50.txt Business69.txt Business87.txt
Business15.txt Business33.txt Business51.txt Business6.txt Business88.txt
Business16.txt Business34.txt Business52.txt Business70.txt Business89.txt
Business17.txt Business35.txt Business53.txt Business71.txt Business8.txt
Business18.txt Business36.txt Business54.txt Business72.txt Business90.txt
Business19.txt Business37.txt Business55.txt Business73.txt Business91.txt
Business1.txt Business38.txt Business56.txt Business74.txt Business92.txt
Business20.txt Business39.txt Business57.txt Business75.txt Business93.txt
Business21.txt Business3.txt Business58.txt Business76.txt Business94.txt
Business22.txt Business40.txt Business59.txt Business77.txt Business95.txt
Business23.txt Business41.txt Business5.txt Business78.txt Business96.txt
Business24.txt Business42.txt Business60.txt Business79.txt Business97.txt
Business25.txt Business43.txt Business61.txt Business7.txt Business98.txt
Business26.txt Business44.txt Business62.txt Business80.txt Business99.txt
Business27.txt Business45.txt Business63.txt Business81.txt Business9.txt
Должно быть 100 файлов (с одним паролем в каждом файле)
$ ls -1 Business*|wc -l
100
Регистрируйте пароли Business1.txt
, Business2.txt
...
$ cat Business*
43xx3zUEJ5wCPLzhagmQJcWHP2cvW1
GCRZ8uJdxQEKXRBc2hoZREpiWseFll
CKwYTghXjJOcBuufODKWnFohG1TKel
ZMXPyNTxIENfoWlF7cfkPxCBkQpLt1
...
Единственным путем я мог с готовностью найти для получения чего-то от/dev/urandom для того, что Вы хотите, должен использовать команду dd. С тех пор/dev/urandom выходные биты сырых данных, с помощью команды TR получит печатаемые символы, но если Вы хотите 30 печатаемых символов, необходимо получить больше чем 30 байтов от dd. Так, я пошел с 300. Вы можете использование команда сокращения для получения первых 30 печатаемых символов.
Вот сценарий:
#!/bin/bash
for n in {1..100}; do
p=$(dd if=/dev/urandom bs=1 count=300 2>/dev/null | tr -dc A-Za-z0-9 | cut -c 1-30)
echo "${p}" >${n}
done
exit 0
Надеюсь, это поможет.