This shows you the differences between two versions of the page.
isrm:laboratoare:new:02 [2021/03/15 13:38] dragos.niculescu |
isrm:laboratoare:new:02 [2021/03/15 13:55] (current) dragos.niculescu |
||
---|---|---|---|
Line 403: | Line 403: | ||
</code> | </code> | ||
- | <code bash> | ||
- | awc() { awk "BEGIN{print $*}"; } | ||
- | for i in `seq 10 2 20`; do awc "$i / 10"; done | ||
- | </code> | ||
==== Aritmetica în shell scripting ==== | ==== Aritmetica în shell scripting ==== | ||
- | Bash face toate calculele pe integer. | + | Bash face **toate calculele pe integer**, deci nu poate fi folosit pentru a calcula medii (mean, median, standard deviation). |
<code bash> | <code bash> | ||
- | x=5; echo $(($x / 3)) | + | $ x=5; echo $(($x / 3)) |
+ | 1 | ||
</code> | </code> | ||
<code bash> | <code bash> | ||
- | x=24 | + | $ x=24 |
- | y=25 | + | $ y=25 |
- | b=`expr $x = $y` # Test equality. | + | $ b=`expr $x = $y` # Test equality. |
- | echo "b = $b" # 0 ( $x -ne $y ) | + | $ echo "b = $b" # 0 ( $x -ne $y ) |
- | echo | + | b = 0 |
</code> | </code> | ||
+ | |||
Putem folosi utilitarul ''bc'' cu pipe pentru calcule în floating point: | Putem folosi utilitarul ''bc'' cu pipe pentru calcule în floating point: | ||
<code bash> | <code bash> | ||
- | echo '6.5 / 2.7' | bc | + | $ echo '6.5 / 2.7' | bc |
- | echo 'scale=3; 6.5/2.7' | bc | + | 2 |
+ | $ echo 'scale=3; 6.5/2.7' | bc | ||
+ | 2.407 | ||
</code> | </code> | ||
+ | |||
+ | <code bash> | ||
+ | $ awc() { awk "BEGIN{print $*}"; } | ||
+ | $ for i in `seq 1 1 4`; do awc "$i + sqrt($i)"; done | ||
+ | 2 | ||
+ | 3.41421 | ||
+ | 4.73205 | ||
+ | 6 | ||
+ | </code> | ||
+ | |||
Line 436: | Line 447: | ||
Exemple simple: | Exemple simple: | ||
- | <code> | + | <code bash> |
- | parallel echo "{1} a{2}" ::: $(seq 1 1 3) ::: $(seq 100 102) | + | $ parallel echo "{1} a{2}" ::: $(seq 1 1 3) ::: $(seq 100 102) |
1 a100 | 1 a100 | ||
1 a101 | 1 a101 | ||
Line 453: | Line 464: | ||
<code> | <code> | ||
- | cat > batch | + | $ cat > batch |
sleep $1 | sleep $1 | ||
echo $2 | echo $2 | ||
- | + | $ parallel ./batch ::: $(seq 3 -1 1) ::: $(seq 100 102) | |
- | parallel ./batch ::: $(seq 3 -1 1) ::: $(seq 100 102) | + | |
100 | 100 | ||
100 | 100 | ||
Line 473: | Line 483: | ||
<code> | <code> | ||
- | parallel -k bash ./batch ::: $(seq 3 -1 1) ::: $(seq 100 102) | + | $ parallel -k bash ./batch ::: $(seq 3 -1 1) ::: $(seq 100 102) |
100 | 100 | ||
101 | 101 | ||
Line 489: | Line 499: | ||
<code> | <code> | ||
- | function run_fixed(){ | + | $ function run_fixed(){ |
echo -n "$1 $2 " | echo -n "$1 $2 " | ||
./waf --run "lab6-7-cw --payloadSize=212 --ns=$1 --nd=$1 --minCw=$2 --maxCw=$2 --pcap=false" | tail -n1 | ./waf --run "lab6-7-cw --payloadSize=212 --ns=$1 --nd=$1 --minCw=$2 --maxCw=$2 --pcap=false" | tail -n1 | ||
} | } | ||
- | export -f run_fixed | + | $ export -f run_fixed |
- | parallel -k run_fixed {1} {2} ::: 4 6 7 20 40 ::: 3 7 15 31 63 127 255 511 1023 2047 4095 | + | $ parallel -k run_fixed {1} {2} ::: 4 6 7 20 40 ::: 3 7 15 31 63 127 255 511 1023 2047 4095 |
</code> | </code> | ||