User Tools

Site Tools


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

скриптуем математику в bash

юзается так:

  $ seq 0 99 | ./test_seq.sh is_prime 

Сам скрипт выглядит так… Для проверки простых чисел используется калькулятор для командной строки o.0

#!/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

oroginal url: http://blog.c0f3.net/2013/10/bash.html

wiki/blog/скриптуем_математику_в_bash.txt · Last modified: 2019/01/05 12:34 by kpc