Portál AbcLinuxu, 28. října 2025 18:14
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-freedowna=$(
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.