変数がエコーされた文字列を完全に混乱させます。

変数がエコーされた文字列を完全に混乱させます。

パスワードのsha1ハッシュがどこかに漏洩したことを確認できるpwnedpasswordsというウェブサイトを見つけました。そのため、プロセスを自動化するスクリプトを作成しました。スクリプトは次のとおりです。

#!/bin/bash

read -s -p "Input your password: " your_pw
echo
your_hash=$(printf "$your_pw"|sha1sum|tr '[:lower:]' '[:upper:]'|head -c40)
hash_head=$(printf "$your_hash"|head -c5)
hash_tail=$(printf "$your_hash"|tail -c35)

pwned_count=$(curl https://api.pwnedpasswords.com/range/${hash_head} 2> /dev/null|grep "${hash_tail}"|awk -F ':' '{print $2}')
echo "Your password has been pwned ${your_pw} times"
echo "Your password has been pwned ${pwned_count} times"

テストパスワードとして使用しましたが、1結果は次のとおりです。

[me@my_compuuter aaa8]$ ./was_your_password_pwned.sh
Input your password:
Your password has been pwned 1 times
 timesassword has been pwned 197972

私はそうすればecho "Your password has been pwned ${your_pw} times" 正しい形式が提供されますが($ your_pwはちょうどパスワードそのものです)、そうすればecho "Your password has been pwned ${pwned_count} times"最後から始めてtimes何とか最初に重なる奇妙な形式を提供します... .. .何が起こるのかわかりません...

誰でもそれを把握できますか?

ベストアンサー1

サイトから返されたリストの行はCR/LF。 A CR\r)はキャレット/カーソルを行の先頭に移動します。

printf 'good \r times'
 times

おすすめ記事