1112 Stimmen

Wie pausiere ich mein Shell-Skript für eine Sekunde, bevor ich fortfahre?

Ich habe nur herausgefunden, wie man auf Benutzereingaben wartet. Ich möchte jedoch nur eine Pause einlegen, damit mein while true meinen Computer nicht abstürzen lässt.

Ich habe pause(1) ausprobiert, aber es sagt -bash: Syntaxfehler in der Nähe des unerwarteten Tokens '1'. Wie kann das gemacht werden?

44voto

AnneTheAgile Punkte 9350

Auf Mac OSX dauert der Ruhezustand nicht Minuten, sondern nur Sekunden. Also für zwei Minuten,

sleep 120

23voto

Jose H. Rosa Punkte 514

Innerhalb des Skripts können Sie das folgende zwischen den Aktionen hinzufügen, bei denen Sie die Pause wünschen. Dadurch wird die Routine für 5 Sekunden angehalten.

read -p "Pause Zeit 5 Sekunden" -t 5
read -p "Fortsetzung in 5 Sekunden...." -t 5
echo "Fortsetzung ...."

15voto

Ole Lukøje Punkte 562
lesen -r -p "Warten Sie 5 Sekunden oder drücken Sie eine beliebige Taste, um sofort fortzufahren" -t 5 -n 1 -s

Um fortzufahren, wenn Sie eine beliebige Taste drücken

_Für weitere Informationen lesen Sie die Manpage für read ref 1, ref 2_

3voto

Sie können es warten lassen, indem Sie $RANDOM verwenden, einen Standard-Zufallszahlengenerator. Im folgenden Beispiel verwende ich 240 Sekunden. Hoffe das hilft @

> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS

3voto

Akhil Punkte 773

Verwenden Sie trap, um die Befehlszeile anzuhalten und zu überprüfen (in Farbe mit tput), bevor Sie sie ausführen

trap 'tput setaf 1;tput bold;echo $BASH_COMMAND;read;tput init' DEBUG

Drücken Sie eine beliebige Taste, um fortzufahren

Verwenden Sie set -x zum Debuggen der Befehlszeile

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X