User Tools

Site Tools


wiki:blog:скриптуем_математику_в_bash

Differences

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

Link to this comparison view

wiki:blog:скриптуем_математику_в_bash [2019/01/05 12:34] (current)
kpc created
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