Die korrekte Syntax lautet:
while read my_pass do echo $my_pass | sudo -S command done < file_name
Drei Kommentare: Sie können su nicht in einer Skriptdatei verwenden. Sie müssen Sudo mit der Option -S verwenden.
Die Option -S (stdin) bewirkt, dass sudo das Kennwort von der Standardeingabe anstelle des Endgeräts liest.
Zweitens: Wenn Sie den Dateinamen nicht in das Skript schreiben möchten, verwenden Sie eines der $ n-Argumente, z. B. $ 1, wenn dies der einzige übergebene Parameter ist.
Drittens: Sind Sie sicher, dass das Sammeln aller Passwörter in einer einzigen, unverschlüsselten Datei eine gute Idee ist?