Ich möchte ein Shell-Skript (POSIX) wie folgt ausführen.Wie man ein Shell-Skript (/ bin/sh) mit der Option -s erstellt und die Eingabe innerhalb
#!/bin/sh
# this is a.sh
echo your age?
read age
echo "You are $age."
Wenn dies/bin/sh über die Standardeingabe als
cat a.sh | /bin/sh -s
dann ausgelöst wird, die Frage übersprungen.
Wie kann ich die Frage stellen?
Gibt es einen Grund, warum Sie es auf diese Weise anstelle von '/ bin/sh a.sh' ausführen? Das Problem ist, dass 'a.sh' seine Standardeingabe vom Aufruf an'/bin/sh' erbt, dessen Standardeingabe 'a.sh' ist. '/ bin/sh' liest die erste und zweite Zeile, aber Ihre' read' Anweisung liest die dritte Zeile. Da für '/ bin/sh' keine Eingabe mehr vorhanden ist, wird sie beendet. – chepner