004
18.02.2008, 19:54 Uhr
0xdeadbeef
Gott (Operator)
|
bash: |
for i in $(seq 10 -1 1); do printf '\r%2d' $i; sleep 1; done; printf '\r 0\n'
|
printf ist ein Befehl aus den GNU core utils, der die C-printf-Funktion nachahmt. In C oder C++ würdest du sowas ganz ähnlich machen. Eine sleep-Funktion gibt's im Header <unistd.h>, sie erwartet eine Anzahl von Sekunden. Außerdem gibt's noch usleep, die erwartet Mikrosekunden (u steht hier f+r µ), und nanosleep in <time.h>, die Nanosekunden erwartet, aber erwartungsgemäß eher selten genau arbeitet. Also
C++: |
sleep(1); // schläft eine Sekunde usleep(1000000); // schläft ebenfalls eine Sekunde nanosleep(1000000000); // dito
|
\r ist ein spezielles Steuerzeichen, das zum Anfang der Zeile zurückspringt (carriage return). In C++ zum Beispiel wird
C++: |
std::cout << "Laus\rM";
|
zur Ausgabe von "Maus" führen, wobei der Cursor danach auf dem a steht. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |