Portál AbcLinuxu, 14. května 2025 00:52
#!/bin/bash SUM=2315 for (( i=0; i<$SUM; i++ )) do echo "???" >> /tmp/data done
Řešení dotazu:
1) Mám jeden cyklus, který se opakuje třeba 524x (vždy se mění), každý jeden cyklus uloží hodnotu ??? do souboru. 2) Mám druhý cyklus, který se vždy ukončí po dosažení hodnoty 100 uložené v souboru Co nevím je, jakou hodnotu ukládat v jednotlivém cyklu do souboru aby to bylo vždy mezi 0 - 100
1) Mám jeden cyklus, který se opakuje třeba 524x (vždy se mění), každý jeden cyklus uloží hodnotu ??? do souboru.Takže máš soubor, ve kterém potom je
1 2 3 ... 522 523 524?
2) Mám druhý cyklus, který se vždy ukončí po dosažení hodnoty 100 uložené v souboruHodnota 100 se dosáhne jenom jednou.
jednotlivémMyšleno prvním?
Co nevím je, jakou hodnotu ukládat v jednotlivém cyklu do souboru aby to bylo vždy mezi 0 - 100Pak ano, hledáš funkci modulo (v Bashi operátor %).
echo "0" > /preloader function go () { R=100 B=$(( 100 / $R )) for (( i=0; i<$(( $R + 1 )); i++ )) do T=$(( $B * $i )) echo $T >> /preloader sleep 0.1 done echo "OK!" } go & # Zobrazení o průběhu for (( x=0; x<100; )) do x=`tail -1 "/preloader"` echo -ne "\rHotovo: $x% " sleep 0.1 done echo
echo "$((i*100/R)) %"
Tak a teď si zkuste představit, že byste místo těch dvou naprosto zmatených a zcela nesrozumitelných příspěvků a zbytečného náznaku zdrojáku jednoduše a prostě napsal, že máte cyklus, kde vám proměnná roste od nuly do dané cílové hodnoty, a vy potřebujete průběžně vypisovat, na kolika procentech té cílové hodnoty momentálně jste.Takhle to nejspíš nefunguje. Dokáže-li někdo jasně napsat, že potřebuje použít trojčlenku, vesměs tu trojčenku i dokáže použít bez cizí pomoci...
Takže máš soubor, ve kterém potom jeAno, ale to je špatně, poslední číslo musí být 1001 2 3 ... 522 523 524?
Myšleno prvním?jednotlivém cyklu == myšleno v každém cyklu
Něco jako (i / SUM) * 100?Výsledek bude vždy nula...
i*100/SUMtak ne.
echo "$((i*100/R)) %"Super, tohle funguje, sice nechápu jak je to možné ale je to tak.. Díky všem za pomoc.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.