Badam zachowanie skryptu, który normalnie jest uruchamiany jako proces automatyczny (np. Cron, Jenkins). Skrypt może (ewentualnie) wywoływać polecenia, które zachowują się inaczej (szukając danych wejściowych od użytkownika), gdy są uruchamiane interaktywnie; na przykład patchzapyta, co zrobić z odwróconą łatką, i svnpoprosi o hasła, ale muszę zobaczyć, co się stanie, gdy zostaną uruchomione bez interakcji.
Przekonanie patch, że nie jest interaktywne, jest dość łatwe; Muszę tylko przekierować, stdoutaby nie być tty:
$ </dev/null > >(cat) /path/to/myscript --args
Jednak svnpołączy się z terminalem sterującym, jeśli istnieje; edycja skryptów do przejścia --non-interactivenie jest tak naprawdę opcją, ponieważ pochodzi ona z kilku poziomów i trudno byłoby mieć pewność, że znalazłem każde wywołanie.
Czy istnieje sposób na wywołanie skryptu / polecenia w sposób nieinteraktywny, bez kontrolującego terminala (więc /dev/ttyto nie istnieje)? Wolałbym, aby stdout / stderr nadal jechał do mojego terminalu.
(Znalazłem pytanie Uruchom skrypt w nieinteraktywnej powłoce? Ale odpowiedzi na to omawiają różnice między środowiskiem cron a środowiskiem użytkownika; już wyeliminowałem wszystkie różnice oprócz nieinteraktywności).