Aus der Manpage von htpasswd erfahren wir dies:
-i Lesen Sie das Passwort von stdin ohne Überprüfung (für die Verwendung von Skripten).
Entsprechend Ihrer Frage sollte also so etwas funktionieren:
echo "test101" | htpasswd -c -i ~/temp/password admin
Das Kennwort wird jedoch im Verlauf und in der Prozessliste angezeigt.
Um die Erstellung eines Kennworts über die Befehlszeile zu automatisieren, würde ich das einfache Kennwort in eine Datei schreiben und etwas Ähnliches tun:
htpasswd -c -i ~/temp/password admin < ~/temp/pass_plain
Löschen Sie anschließend die Datei pass_plain.
Vergewissern Sie sich auch, dass die pass_plain-Datei nicht von anderen Personen gelesen werden kann, auch wenn sie nur ein paar Sekunden lang vorhanden ist.