Niepowodzenie, jeśli skrypt oczekuje wejścia lub wprowadzenia haseł
Opracowuję skrypt, który nie powinien wymagać interakcji z użytkownikiem, a jeśli program w moim skrypcie wymaga od użytkownika wprowadzenia czegoś, skrypt powinien zakończyć się niepowodzeniem i natychmiast wyjść.
Już zamknąłemSTDIN
na górze mojego skryptu, a to działa dla niektórych poleceń, ale są takie, które oczekują wejścia w innym deskryptorze pliku (zwykle te, które proszą o hasła takie jakgit
lubsudo
).
Obecnie mój skrypt to:
#!/bin/bash
# close STDIN
exec 0<&-
# test that $1 exists and it is a valid folder containing a git repository
# ...
cd "$1"
git fetch
# if git is not correctly configured, it asks for a password and
# my script waits for it :(
Więc jak mogę tego uniknąć?
uwaga: nie pytam, jak zrobić konfigurację bez hasłagit
lubsudo
lubwhatever
, ale aby zapobiec programowibash
(lubsh
) oczekiwanie od użytkownika i natychmiastowe zawieszenie, jeśli tak jest.