# Bash

### от Уикипедия, свободната енциклопедия

Bash или Bourne Again Shell (игра на думи: „възродена обвивка“ или „отново обвивка на Борн“) е команден интерпретатор (обвивка), използван предимно в подобните на UNIX операционни системи.

## [редактиране] Въведение

В системите на основата на UNIX, командният интерпретатор изпълнява функцията на преводач между потребителя и ядрото на операционната система. Дълго време това е бил основният и най-добър начин за работа с UNIX. За разлика от създадените много по-късно системи с графичен интерфейс като Windows и MacOS, работата с командните интерпретатори се осъществява посредством текстови команди. Те могат да бъдат външни (в отделни изпълними файлове) или вградени в интерпретатора (builtins).

## [редактиране] Предшественици

Един от първите командни интерпретатори за UNIX е Bourne shell (sh). Той носи името си от своя създател Стивън Борн и е бил включен в UNIX Версия 7 през 1979 година. Друг широко разпространен интерпретатор е C shell (csh), написан от Бил Джой в калифорнийския университет Бъркли като част от операционната система BSD. Със синтаксис подобен на езика C, C shell е изключително удобен и лесен за научаване от UNIX програмисти. За съжаление той е несъвместим с Bourne shell. Първият съществен опит за подобряване на възможностите на Bourne shell е интерпретаторът ksh (Korn Shell). Той съчетава нови възможности и съвместимост с Bourne shell.

## [редактиране] Роден отново

Създаден като част от проекта ГНУ, Bash (Bourne-Again Shell) е един от най-популярните командни интерпретатори в UNIX. Базира се на небезизвестния sh (Bourne Shell) като също така взаимства функционалност от ksh (Korn Shell) и csh (C Shell). Официално е започнат през 10 януари 1988 г. от Брайън Фокс към който по-късно се присъединява и Чет Рами. През 1995 г. Чет започва работа над Bash 2.0 официално обявен на 23 декември 1996 г. Bash посредством своя синтаксис и вградени команди предоставя възможност за програмиране. Той може да изпълнява команди както от командния ред, така и от външен файл. Синтаксисът му е един и същ независимо от къде чете командите. Мощта на програмирането на Bash не се състои толкова в ключовите му думи и конструкции, колкото в набора от десетките програми като sed, awk, grep, cut и др. които са незаменима част от UNIX.

## [редактиране] Примери

В случай, че се зарежда изпълним файл които съдържа Bash код, в началото му трябва да се укаже пътя към интерпретатора по следния начин:

    #!/път/към/bash

За разлика от езици като C, C++, Java и др. при Bash кода не се компилира, а се интерпретира така както е подаден. Типичен пример за една Bash програма е следният:

    #!/usr/local/bin/bash
    echo „Здравей, Свят!“

Кодът може да се коментира със # например:

    echo „hello“ # Отпечатай hello
    # прекъсни програмата
    exit

В Bash Може да създавате променливи и функции. Типа на променливите не е задължителен, но при нужда може да се укаже посредством вградената команда declare. Променлива се декларира по следния начин:

    ime_promenliva="stoinost na promenlivata"

И се достига със знакът за стринг $ в началото и. Например:

    echo $ime_promenliva

Има няколко начина за създаване на фунции. Единият е чрез ключовата дума function:

    function ime_funciq {
      # kod na funciq
    }

Или със скоби по следния начин:

    ime_funciq() {
      # kod na funciq
    }

Функциите се извикват само с името им, без скоби или допълнителни символи в началото, например:

    ime_funciq „параметър 1“ „параметър 2“ три четири 5

Параметрите подадени на функцията се разполагат от $1 до $n където n е число и е последен параметър. Те могат да се изместват с вградената команда shift, например:

    echo $1
    shift 2
    # $3 става $1eb:Bash

Взето от „http://bg.wikipedia.org../../../b/a/s/Bash.html“.

Категория: Езици за програмиране

##### Views

- Статия
- Беседа
- Текуща версия

##### Търсене

##### На други езици

- العربية
- Bosanski
- Català
- Česky
- Deutsch
- English
- Esperanto
- Español
- Suomi
- Français
- Galego
- עברית
- Hrvatski
- Magyar
- Italiano
- 日本語
- 한국어
- Nederlands
- Polski
- Português
- Русский
- Slovenčina
- Svenska
- ไทย
- Türkçe
- 中文