Сохранение сгенерированных паролей в файл .txt

random-string() { cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-8} | head -n 1 } 

Используя этот скрипт для создания списка из нескольких тысяч случайных 8-значных буквенно-цифровых паролей.

Можно ли добавить этот скрипт в файл, чтобы сохранить сгенерированные пароли в файл .txt?

Я немного новичок в Linux и нашел много ресурсов в Интернете, но я в тупике.

Вы определили функцию random-string() для генерации случайных паролей, содержащих A-Za-z0-9 и выводя только самый верхний ( head -1 ), из вашего вопроса неясно, хотите ли вы сохранить созданные пароли после одного запуска каждый раз в файл или вы хотите сделать это рекурсивно.

Позвольте мне сначала упростить вашу команду:

 tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 
  • tr принимает класс символов [:alnum] который обозначает символы A-Za-z0-9

  • cat не нужно, передайте имя файла через STDIN в tr

  • Расширение параметра fold -w ${1:-8} не требуется, просто используйте fold -w 8

Теперь, чтобы сохранить результат после одного запуска функции (только один пароль), это будет перезаписывать файл каждый раз, используйте оператор shell > redirection:

 $ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 ;} >foobar $ random_string $ cat foobar MqJdehaO 

Мы сохраняем STDOUT функции random_string в файле foobar в текущем каталоге.

В следующем запуске файл будет перезаписан новым контентом:

 $ random_string $ cat foobar NP85OmWw 

Чтобы перезаписать файл, например spamegg use >> redirection, что означает, что STDOUT функции будет добавляться к файлу каждый раз, когда мы запустим его:

 $ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n 1 ;} >>spamegg $ random_string $ cat spamegg vjwOe6TB $ random_string $ cat spamegg vjwOe6TB TBkv6qPh 

Чтобы сделать его более гибким, мы можем определить, сколько паролей мы хотим сохранить за один проход, предоставив номер по номеру в качестве первого аргумента функции:

 $ random_string () { tr -dc '[:alnum:]' </dev/urandom | fold -w 8 | head -n "$1" ;} >foobar $ random_string 5 $ cat foobar AV79dZeC byitWYfX eDBAldiI 6OxNU78H gRs7SwEO 

Как вы можете видеть, 5 паролей были сгенерированы и сохранены в файле foobar , измените 5 с любым количеством паролей, которое вы хотите.

Использование перенаправления ввода-вывода

 your_script 1>> pwd_list 

перенаправить и добавить stdout в файл pwd_list .


НАПРИМЕР

 #!/bin/bash random-string() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-8}" | head -n 1 } if [ -f out_pwd ]; then rm out_pwd fi COUNTER=0 while [ "$COUNTER" -le 10 ]; do random-string "$@" 1>> pwd_list done exit 0 

и просто запустите скрипт, вывод в файл pwd_list является частью скрипта


или использовать этот скрипт, чтобы перенаправить вывод в файл pwd_list при запуске скрипта

 #!/bin/bash random-string() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w "${1:-8}" | head -n 1 } COUNTER=0 while [ "$COUNTER" -le 10 ]; do random-string "$@" done exit 0 

и запустите сценарий с помощью

 script_name 1>> pwd_list