Если я бегу Да, «Я люблю сыр»
в Bash, я получу бесконечный выход Из
I like cheese
I like cheese
...
...
Тем не менее, я хотел бы распечатать случайную строку на каждой строке и мыслей с помощью Да
может быть способ добраться туда. Итак, я попробовал эту команду:
yes `echo $(tr -dc A-Za-z0-9 </dev/urandom | head -c 10)`
Проблема в том, что она печатает одинаковую строку, поскольку да, потому что
требуется только первый результат, что
`echo $(tr -dc A-Za-z0-9 </dev/urandom | head -c 10)`
оценивает, что является случайной строкой (например, d8ptvezyyyi
)
Так что результат и бесконечный выпуск:
d8pTVeZYyi
d8pTVeZYyi
d8pTVeZYyi
...
Как я могу сделать эту замену команды на каждой строке? Так что результат:
d8pTVeZYyi
HCmjUpGOIq
K3e8aquaiK
mMJBZYkHJM
...
P.S. Общая цель состоит в том, чтобы иметь возможность генерировать огромные текстовые файлы со случайной строкой на каждой строке в разумное количество времени. Те, кто нужен для тестовых целей.
Проблема в том, что выражение echo $ (tr -dc a-za-z0-9 dev / random | голова -c 10)
Оценивался только один раз, в данный момент, когда да
- лакнуд, поэтому все последующие итерации только что распечатывают результат этого выражения.
Некоторые другие варианты:
while true; do
tr -dc A-Za-z0-9 </dev/urandom | head -c 10
echo ""
done
или
while true; do
rand=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 10)
echo "$rand"
done
или, лучше, похищенные из @ комментарий Steeldriver ):
tr -dc A-Za-z0-9 </dev/urandom | fold -w10