I-Skript, das einen Sub-Shell/Hintergrund-Befehl startet Eingabe zu lesen und dann mehr Arbeit zu tun:Einsatz Lese builtin Befehl von den Eltern stdin zu lesen, während in einer Subshell
#!/bin/bash
(
while true; do
read -u 0 -r -e -p "test_rl> " line || break
echo "line: ${line}"
done
) &
sleep 3600 # more work
Mit dem obig ich nicht tun bekomme sogar eine Aufforderung. Wenn ich exec 3>&0
vor dem Start der Subshell und dann aus dem Deskriptor 3 (-u 3
) lesen, dann bekomme ich zumindest die Eingabeaufforderung, aber der Lesebefehl erhält immer noch keine Eingabe, die ich eintippe.
Wie bekomme ich die Lese-Builtin korrekt vom Terminal gelesen (Eltern stdin Datei-Deskriptor)?
Bitte senden Sie komplette Beispiele – aless80
Hintergrundprozesse nicht vom Terminal lesen erlaubt. – Barmar
Look-up-Co-Prozesse in 'Mann bash' – cdarke