Die absolut einfachste Lösung ist dieser Einzeiler ohne clevere Tricks:
read -p "Drücken Sie die Eingabetaste ..." y
Es erinnert an das klassische DOS Drücken Sie eine beliebige Taste, um fortzufahren
, außer dass es auf die Eingabetaste wartet, nicht nur auf eine beliebige Taste.
Zugegeben, dies bietet Ihnen keine drei Optionen für Ja Nein Abbrechen, aber es ist nützlich, wenn Sie in einfachen Skripten Steuerung-C als Nein bzw. Abbrechen akzeptieren, z. B.:
#!/bin/sh
echo Sichern dieses Projekts
read -p "Drücken Sie die Eingabetaste ..." y
rsync -tavz . /media/hard_to_remember_path/backup/projects/yourproject/
weil Sie es nicht mögen, sich hässliche Befehle und Pfade merken zu müssen, aber auch keine Skripte, die zu schnell ausgeführt werden, ohne Ihnen die Möglichkeit zu geben, anzuhalten, bevor Sie feststellen, dass es nicht das Skript ist, das Sie ausführen wollten.
Das Kommandozeilenargument y
ist bei sh
erforderlich und kann optional verwendet werden, um die vom Benutzer eingegebene Antwort zu erhalten, bevor die Eingabetaste gedrückt wird, beispielsweise so:
echo Sie haben $y eingegeben
Mit bash
können Sie das letzte Argument weglassen und einfach verwenden:
read -p "Drücken Sie die Eingabetaste ..."
40 Stimmen
Just als Hinweis: Die Konvention für Aufforderungen besagt, dass wenn Sie eine Option
[yn]
präsentieren, die Großschreibung die Standardeinstellung ist, d.h.[Yn]
wird standardmäßig auf "yes" und[yN]
auf "no" festgelegt. Siehe ux.stackexchange.com/a/40445/435324 Stimmen
Jeder, der von ZSH hierher kommt, siehe diese Antwort für die Verwendung des
read
Befehls zur Aufforderung2 Stimmen
Sie können auch meine zugehörige Frage/Antwort auf U&L.SE zur kanonischen Art, in
bash
zu pausieren, in Betracht ziehen. Die bereitgestellten Ergebnisse können einfach übertragen werden.