User Tools

Site Tools


wiki:blog:скриптуем_математику_в_bash
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


wiki:blog:скриптуем_математику_в_bash [2019/01/05 12:34] (current) – created kpc
Line 1: Line 1:
 +====== скриптуем математику в bash ======
  
 +юзается так:
 +
 +    $ seq 0 99 | ./test_seq.sh is_prime 
 +
 +
 +Сам скрипт выглядит так... Для проверки простых чисел используется калькулятор для командной строки o.0
 +<code bash>
 +#!/bin/bash
 +
 +even_counter=$(( 2-$1%2  ))
 +
 +function is_prime {
 +    number=
 +    if(( $1 < 0 )); then
 +        number=$(($1*-1))
 +    else
 +        number=$1
 +    fi
 +    if(( $number == 1 || $number == 0)); then
 +        echo $1
 +        return
 +    fi
 +    # а это строчка проверки числа, простое ли оно...
 +    result=`seq -s "*" 1 $(($number-1)) | 
 +sed -r "s/([0-9,\*]+)/(\1+1)%$number/" | bc`
 +    # перенос строчки чисто чтобы в блог нормально влезло
 +
 +    #echo "[[$result]] for $number"
 +    if(( $result == 0 )); then
 +        echo $1
 +    fi
 +}
 +
 +function is_even {
 +    if(( $even_counter == 2 )); then
 +        echo $1
 +        even_counter=1
 +    else
 +        even_counter=$(($even_counter + 1))
 +    fi
 +}
 +
 +function is_not_even {
 +    if(( $even_counter == 1 )); then
 +        echo $1
 +        even_counter=$(($even_counter + 1))
 +    else
 +        even_counter=1
 +    fi
 +}
 +
 +echo "filtering by: $1"
 +for item in $(cat)
 +do
 +    # echo "Item: $item"
 +    cmd="$1 $item"
 +    eval "$cmd"
 +    # eval $1
 +done
 +</code>
 +
 +oroginal url: http://blog.c0f3.net/2013/10/bash.html
wiki/blog/скриптуем_математику_в_bash.txt · Last modified: 2019/01/05 12:34 by kpc

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki