乱数を得るためにこのコードを実行してみましたが、評価は機能しないようです。これが私のコードです。
#!/bin/bash # Sequencia alfanumerica de 12 carateres aleatoriamente(maiusculas e minusculas) ファイル="/home/ruimachado/password.txt" Oncepass="/home/ruimachado/once_pass.txt" randompasswd=$(cat /dev/urandom | tr -dc '1-9' | 折りたたみ -w 1 | 頭 -n 1 > $oncepass) onlytail=$(tail-1 $oncepass) パス=$(tail-1$file) testename=$(grep -R $onlytail $file) if [ $onlytail != "$testename" ] それから echo "ecoar para oファイルを確認してください" エコ $onlytail >> "$file" その他 エコ「私は存在する」 エコ「$onlytail」 フィリピン諸島 $randompasswd 評価 エコ「$onlytail」 エコ「ピム」 0番出口
出力:
- 番号が存在しない場合
ecoar para oファイルを探す 1 ピム
- 数字が存在する場合
私は存在する サム サム ピム
彼らは私に同じ番号を与えた。誰でも私を助けることができれば幸いです。
私の英語でごめんなさい
答え1
意志は空なeval
ので何もしません。$randompasswd
randompasswd
次の項目
randompasswd=$(cat /dev/urandom | tr -dc '1-9' | fold -w 1 | head -n 1 > $oncepass)
内部コマンドは$(...)
出力を生成しないため(出力がファイルにリダイレクトされるため)、空の$randompasswd
文字列になります。
eval
実際にランダムな文字列を実行したくないので大丈夫です。
これに加えて、$onlytail
in if
- ステートメントのように二重引用符で囲む必要がある引用符のない変数拡張がたくさんあります(スペースが含まれている場合は構文エラーが発生します)。
このコードで何をしたいのかわからないので、あまり話すことはできません。
12個の英数字で構成されるパスワードストリームを生成するには:
tr -dc '[:alnum:]' </dev/urandom | fold -w 12
次のいずれかを選択します。
tr -dc '[:alnum:]' </dev/urandom | fold -w 12 | head -n 1
100個の固有のパスワードを生成するには(そしてパスワードが一意であることを確認してください):
while true; do
tr -dc '[:alnum:]' </dev/urandom | fold -w 12 | head -n 100 | sort -u -o password.list
if [ "$( wc -l <password.list )" -eq 100 ]; then
break
fi
done
これは100個のパスワードを生成し、それらをソート(重複排除)することから始まります。次に、生成されたファイルに100行があるかどうかをテストします。それ以外の場合は操作全体を再実行し、そうでない場合はループを終了します。ファイルがpassword.list
あれば上書きされます。
既存のファイルが存在し、password.list
ファイルにまだ存在しないパスワードを作成(および追加)したい場合:
while true; do
newpassword=$( tr -dc '[:alnum:]' </dev/urandom | fold -w 12 | head -n 1 )
if ! grep -q -F "$newpassword" password.list; then
printf 'New password generated: %s\n' "$newpassword"
printf '%s\n' "$newpassword" >>password.list
break
fi
done