Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: nettezzaumana 17 Dubna 2009, 09:09:15
-
Tohle funguje, ale nelibi se ni to overovani pomoci `ps -o pid | ..`
sleep 5 &
pid=$!;
while test ! -z $(ps -o pid | grep "^$pid$"); do
for x in / - \\ \|; do
echo -ne "searching $x \r";
sleep 0.2;
done
done
Tohle nefunguje a nevim proc, pac proces za rourou by mel skoncit s procesem pred ni ..
spinner() {
spin=( '|' '/' '-' '\' );
i=0;
while sleep 0.2; do
echo -ne "searching ${spin[i=(i+1)%4]} \r";
done;
};
sleep 5 | spinner;
## .. spustite jako
bash << 'EOF'
cut & pejst
EOF
-
Mohlo by to být takto?
spinner.sh
#!/bin/bash
PROC=$@
spinner(){
while [ -d /proc/$1 ];do
echo -n '.' ; sleep 0.05
done
return 0
}
$PROC >/dev/null 2>&1 &
spinner $(pidof -s $1)
sh spinner.sh sleep 3
-
nezkousel jsem ale nepochybne ano .. nicmene je to o5 jakasi brute-force-polling metoda, pricemz delas to same co ja s tim rozdilem, ze ty overujes jestli je pid zivouci pomoci `test -d /proc/$pid` a ja pomoci `grep "^$pid$" <(ps -o pid)` ;)
-
Mam to !!
(while sleep 0.2; do spin=( '|' '/' '-' '\' ); echo -ne "searching ${spin[i=(i+1)%4]} \r"; done) & sleep 5; kill $!;
.. tak zcela opacne .. hodime na pozadi tisk ze se neco deje a killneme ho az skonci co se deje
-
Teď jsem chtěl napsat, já jsem pomocí googlu našel jiný způsob
#!/bin/bash
sleep 5 &
pid=$!;
while [ $? -eq 0 ]; do
for x in / - \\ \|; do
echo -ne "searching $x \r";
sleep 0.2;
done
kill -0 $pid 2> /dev/null
done
-
Funguje to a teď jsem konečně pochopil proč tam ej to / - \\ \| ;D
-
...
while [ $? -eq 0 ]; do
...
.. ehm. to jako proc v tomto pripade?
-
Protože to testuje dokud ten proces sám od sebe neskončil ne ? Návratová hodnota z `kill -0 $pid` :)
EDIT: Akorát jsem si ted uvědomil, že ani nevím proč sem tam měl run_pid=$(kill -0 $pid 2> /dev/null), což bylo úplně zbytečný, jelikož jsem tu proměnou k ničemu nepotřeboval. Asi sem s tím předtím zamýšlel něco jinýho.
-
Mimochodem, tohle vlákno stojí za to...
Připomíná mi časy, kdy jsem někdy v polovině 90. let v linuxu, kde se xserver musel ještě extra spouštět (quarterly fall nebo tak nějak) dělal databázovej browser v ncurses. Bohužel, všichni tenkrát chtěli jenom wokna :-)