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> | ||