почти пятничное, бессмысленное и беспощадное

$ gdb
GNU gdb (GDB) Fedora (7.2-46.fc14)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute
it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
.
(gdb) p 12*5
$1 = 60
Если арифметика целочисленная, то вполне подойдёт встроенная в шелл арифметика. Для обычного шелла это выглядит так:
$ let x=12*5; echo $x
60
А на баше можно скруглить углы:
$ echo $((12*5))
60
Можно, в общем-то, и на awk написать:
$ awk 'BEGIN {print 12*5}'
60
Конечно же, так же подойдёт любой скриптовый язык -- Perl, Python,
К примеру, вот вам Python:
$ python
Python 2.7 (r27:82500, Sep 16 2010, 18:02:00)
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> print 12*5
60
Или проще:
$ echo 'print 12*5' | python -
60
А вот Perl, для данного случая -- никакой разницы, только Перл не добавляет перевод строки :)
$ echo 'print 12*5,"\n"' | perl -
60
А вот PHP, тоже надо добавлять перевод строки:
php -r 'print 12*5 ."\n";'
60
Пример на Ruby оставлю читателям в качестве домашнего задания.
$echo 'print 12*5,"\n"' | ruby
60
А вот особый шик -- на MySQL (полагаю, Postgres тоже вполне подойдёт). Только нужно, чтобы сервер был запущен. Клиент-серверный калькулятор, не хухры-мухры!
$ echo "SELECT 12*5;" | mysql
12*5
60
Ну и, конечно, никто не мешает нам взять и поступить как взрослые бородатые дядьки, а именно написать сразу на С, скомпилировать и запустить. Минимальный вариант примерно такой:
$ echo 'void main(void) {printf("%d\n", 12*5);}' > m.c
$ gcc m.c && ./a.out
m.c: In function ‘main’:
m.c:2:1: warning: incompatible implicit declaration of built-in
function ‘printf’
60
Да, очень просится пример на постскрипте, и ведь в принципе несложно сделать, только для того, чтобы увидеть циферку, нужен принтер или просмотровщик PS файлов -- не очень практично. Да и не совсем это уже командная строка получается. Впрочем, я сделал пример на постскрипте, но показывать вам пока не буду.
Пишите в комментах ваши варианты использования командной строки в качестве калькулятора! Наверняка я многое пропустил!
|
</> |