W systemie UNIX mam proces, który chcę uruchomić za pomocą nohup. Jednak ten proces będzie w pewnym momencie czekał na monit, w którym muszę wejść yes
lub no
kontynuować. Do tej pory w UNIX wykonywałem następujące czynności:
nohup myprocess <<EOF
y
EOF
Więc zaczynam proces „mójproces” za pomocą nohup i potokuję w pliku za pomocą „y”, a następnie zamykam plik. Powyższe wiersze są w rzeczywistości trzema osobnymi poleceniami - tzn. Nacisnąłem enter w pierwszym wierszu w systemie UNIX, a następnie dostaję monit, w którym wpisuję „y”, a następnie naciśnij enter, aby w końcu wpisać „EOF” i ponownie naciśnij klawisz Return. To działa idealnie, ale mój problem jest poniżej.
Chcę teraz wykonać to w Perlu, ale nie jestem pewien, jak mogę wykonać to polecenie, ponieważ ma ono ponad trzy wiersze. Nie wiem, czy następujące elementy będą działać:
my $startprocess = `nohup myprocess <<EOF &
y
EOF
`
Odpowiedzi:
Jeśli chcesz po prostu napisać singiel
y
na początku procesu, możesz to zrobić:Jeśli chcesz kontynuować pisanie
y
dla każdego pojawiającego się monitu, coreutilyes
istnieje właśnie w tym celu - będzie zapisywał wszystko, co mu powiesz na standardowe wyjście. Domyślnie jest to wyjście „y”, więc możesz po prostu:ale jeśli potrzebujesz czegoś innego, możesz przekazać to jako argument
źródło
yes
używane przez eony