LINUX.ORG.RU

Создание скрипта

 


0

1

Здравствуйте,только открыл для себя понятие «скрипт» и торможу на этой задаче.Нужно создать скрипт,который будет находить сумму переданных ему аргументов и по результату сложения вывести сообщение по таким параметрам - равно нулю,меньше нуля или больше нуля

Ты в каждой теме тормозишь на задаче. Почитал бы ман баш и статью на опеннете, уже бы сам все делал левой пяткой. Если хочешь помощи, приводи свое решение, поправим, если будет неверное.

anonymous
()
Ответ на: комментарий от stirner

Показывай свое решение. Дальше разберемся.

anonymous
()
Ответ на: комментарий от stirner

да,потому что изучаю для себя и хочу увидеть вашу точку зрения)

Эта задача слишком проста для того, чтобы на ней были разные точки зрения.
Поэтому решай сам, если будет что непонятно публикуй конкретный код и спрашивай.

А пока man bash

torvn77 ★★★★★
()

И не благодари!

cat ./script 
#!/bin/bash
if [ $# != 2 ]; then
        echo "$0 arg1 arg2";
        exit 1
fi

tmpf=$(tempfile /tmp/cfileXXXXXXX -s .c)
bin=$(tempfile /tmp/binfileXXXXXXX)

cat > $tmpf << EOF
#include <stdio.h>
#include <math.h>

int main(){
    double a = (double)$1, b = (double)$2;
    double sum = a + b;
    const char* str = "equal to";
    if(sum > __DBL_EPSILON__) str = "greater than";
    else if (sum < -__DBL_EPSILON__) str = "less than";
    printf("sum (%g) is %s zero\n", sum, str);
    return 0;
}
EOF

gcc $tmpf -o $bin
$bin

rm -f $tmpf $bin

Вот выхлоп:

./script 0.22 0.34
sum (0.56) is greater than zero

./script 0.22 -0.34
sum (-0.12) is less than zero

./script 0.22 -0.22
sum (0) is equal to zero

anonymous
()
Ответ на: комментарий от anonymous

Но можно вместо последней строки воткнуть.

Пусть ТС сам хоть что-то сделает: погуглит и вставит патч.

anonymous
()
#!/bin/bash
IFS=+ 
sum=`bc<<<"$*"`
(( `bc -l<<<"$sum == 0"` )) && echo "равно нулю"
(( `bc -l<<<"$sum > 0"` )) && echo "больше нуля"
(( `bc -l<<<"$sum < 0"` )) && echo "меньше нуля"
madcore ★★★★★
()
Ответ на: И не благодари! от anonymous

будет находить сумму переданных ему аргументов

sum = a + b

в условии количество аргументов не ограничено. гцц умеет читать из stdin, кста.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.