Portál AbcLinuxu, 12. května 2025 11:47
downa=$( export LC_ALL=C export LANG=C wget nejaky_soubor 2>&1 | sed -n 's/.*(\([^ ]*\).*saved.*/\1/;T;p' )ziskavam cislo vyjadrujici rychlost downloadu.Toto cislo je v rozmezi 2-1050 nebo v rozmezi 0-1.99 Potreboval bych napsat matemetickou operaci v bashi ktera by v pripade ze ten sed vyplivne vysledne cislo v rozsahu 2-1050 neudelala nic a v pripade ze ten sed vyplivne cislo v rozsahu 0-1.99 toto cislo vynasobil 1000.Dokazal by mi nekdo pomoci.Dekuji.
| awk '{ if($1>0 && $1<2) print $1*1000; }'
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
downa=$( export LC_ALL=C export LANG=C wget http://schema.mistral.cz/speed/dwn.php?1000 2>&1 | sed -n 's/.*(\([^ ]*\).*saved.*/\1/;T;p' )| awk '{ if($1>0 && $1<2) print $1*1000; }' echo "$downa"nevzpise zadnou hodnotu.
downa=$( export LC_ALL=C export LANG=C wget nejaky_soubor 2>&1 | sed -n 's/.*(\([^ ]*\).*saved.*/\1/;T;p' | awk '{ if($1>0 && $1<2) print $1*1000; else print $1; }' )
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
function test { OIFS=$IFS IFS="." s=($1) left=${s[0]} right=${s[1]} IFS=$OIFS if [ $left -gt 1 ]; then :; else right=${right:0:2} (( left*=1000 )) (( right*=10 )) (( left+=right )) echo $left fi }Ale awk je praktickejsi
downa=$( export LC_ALL=C export LANG=C wget nejaky_soubor 2>&1 | sed -n 's/.*(\([^ ]*\).*saved.*/\1/;T;p' ) bc -l <<EOF downa = $downa if(downa < 2) downa * 1000 else downa EOF
echo "$downa"tak mi vypise cislo ve tvaru treba 1.05 potreboval bych dostat tu vynasobenou hodnotu primo do nejake promene abych ji potom mohl dale pouzit
downb=$(bc -l <<EOF downa = $downa if(downa < 2) downa * 1000 else downa EOF) echo $downb
Nejpohodlnější bude asi použítí bc
:
echo "
number=$downa
if ((number >= 2) && (number <= 1050)) {
print number
}
if ((number >= 0) && (number <= 1.99)) {
print number * 1000
}
" |bc -l
#!/usr/bin/python import urllib2, time url = 'http://abclinuxu.cz' response = urllib2.urlopen(url) stamp = time.time() data = response.read() print len(data)/(time.time() - stamp)Ani jsem se neobtěžoval to číst po kouskách – píšeš, že délka bude max. dva kilobajty.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.