**bc** — інтэрактыўны інтэрпрэтатар C-падобнай мовы, які дазваляе выконваць вылічэнні з адвольнай дакладнасцю. Нярэдка выкарыстоўваецца ў якасці калькулятара ў камандным радку UNIX-падобных сістэм. Традыцыйная рэалізацыя bc была абалонкай для калькулятара dc, які прымаў выразы ў адваротнай польскай натацыі, і выконвала пераўтварэнні з інфікснай формы ў адваротную польскую. Сучасная версія Gnu bc рэалізаваная як асобная праграма. Большасць аператараў bc паўтараюць аналагічныя аператары C.

Сінтаксіс каманды
-----------------

```
 bc [ -hlwsqv ] [long-options] [  file … ]

 -l : выклікае стандартную бібліятэку матэматычных функцый.
 -w : выводзіць папярэджанне наконт Posix — пашырэнняў bc.
 -s : ужывае мову Posix bc.
 -q : не друкуе звычайнае вітанне bc.
 -v : друкуе номер версіі працэсара і завяршае праграму.
 -h : выклікае даведку па bc

```

Аператары і ключавыя словы
--------------------------

Большасць аператараў `bc` (акрамя `^`) паўтарае аналагічныя аператары мовы Сі.

```
+,-,*,/ : складанне, адніманне, множанне, дзяленне
% : знаходжанне астачы
^ : падвышэнне да ступені
sqrt(i) : здабыццё квадратнага кораня з ліка i
<, >, <=, >=, !=, == : параўнанне
= : прысвойванне
++, -- : інкрэмент, дэкрэмент
+=, -=, *=, /=, ^=, %= : прысвойванне з вылічэннем
scale = i : вызначаецца дакладнасць вылічэння, i – колькасць лічбаў пася коскі
ibase = i : вызначаецца аснова сістэмы злічэння для уваходных даных, дзе i з’яўляецца базісам (2 <= i <= 16)
obase = i : вызначаецца аснова сістэмы злічэння для выходных даных
last : Вывад апошняга вылічанага значэння
```

```
if(E)[S1…] else [S2…] : аператар выбару, калі E сапраўдна, выконваецца S1, калі не, то S2
while(E)[S…] : аператар цыклу, выконвае аператары S, пакуль выраз E сапраўдны
for(E1;E2;E3)[S…] : аператар цыклу
break : спыняе выконванне for ды while
continue : завяршае бягучую ітэрацыю цыкла (працягвае цыкл, пераходзячы да наступнай ітэрацыі)
halt : спыняе работу bc
return : вяртае код 0 пры выхадзе з функцый
return i : вяртае код зменнай i пры выхадзе з функцый
define a(b) : вызначае сімвальнае імя, іменаваную канстанту ці функцыю.
print <спіс> : друкуе спіс на экран
```

Функцыі матэматычнай бібліятэкі
-------------------------------

Пры неабходнасці можна далучыць да калькулятара бібліятэку матэматычных функцый. Для гэтага трэба пазначыць у камандным радку ключ `-l`

* s(i) : сінус i, дзе i пазначана ў радыянах
* c(i) : косінус, дзе i пазначана ў радыянах
* a(i) : арктангенс, вяртае радыяны
* e(i) : экспанента
* l(i) : натуральный лагарыфм i
* j(n, x) : функцыя Бэссэля

Прыклады выкарыстання
---------------------

Цыклічнае вылічэнне значэнняў функцыі.

```
$ bc -lq
for(i=1;i<=3;i++) 8*e(i)+sqrt(i)
22.74625462767236188288
60.52666235381829686664
162.41634619307021922088
```

Вылічэнне Пі, 200 знакаў пасля кропкі. 

```
$ bc -lq
scale=200
4*a(1)
```

Вывад на экран табліцы памнажэння 10х10.

```
$bc -q
   for (i=1; i<=10; ++i){
      for (j=1; j<=10; ++j)
         print i*j, "\t"
      print "\n"
   }

```



| ⛭Стандартныя праграмы UNIX (усе праграмы) |
| --- |
| Файлавыя сістэмы | chroot · dd · df · fdisk · fsck · mkisofs · mkswap · mount · umount · rehash |
| Файлы і каталогі | cat · chattr · cd · chmod · chown · chgrp · cksum · cmp · cp · diff · du · file · fuser · ln · ls · lsof · mkdir · mv · od · pwd · rm · rmdir · split · touch |
| Працэсы | at · cron · exit · kill · killall · nice · nohup · pgrep · pidof · pkill · ps · renice · sleep · time · top · wait · watch |
| Карыстальнікі | env · finger · id · last · logname · mesg · passwd · su · sudo · uptime · w · wall · who · whoami · write |
| Сетка | ftp · host · ifconfig · netcat · netstat · nmap · nslookup · ping · rlogin · SSH · traceroute · wget |
| Тэксты | AWK · comm · cut · ed · ex · expand · unexpand · fmt · head · iconv · join · less · more · paste · pr · sed · sort · tac · tail · tr · uniq · wc · xargs |
| Камандны радок | alias · basename · bash · bind · dirname · echo · expr · false · printf · test · true · unset |
| Пошук | find · grep · strings · whereis · which |
| Рознае | banner · bc · cal · date · help · lp · man · Xhistory · size · tee · uname · yes · reboot |