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