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