За начало - нека изясним заглавието. Линукс има повече от една възможна черупка, а скрипторът на който и да е от тях е тема, която лесно може да опакова цяла книга. Това, което ще направим, е да обхване основните елементи на скрипта за баш . Ако не знаете кой черупки използвате, това вероятно е баш . Процесът ще бъде познат на всеки, който е работил с файловете на DOS, но това е същата концепция. Току-що сте поставили серия от команди в текстов файл и го стартирате. Разликата идва от факта, че баш скриптове могат да направят много повече от партидните файлове. Всъщност, баш скриптовете не са толкова далеч от пълен език като Python. Днес ще покрием няколко основни неща като вход, изход, аргументи и променливи.

Забележка : Ако искаме да станем наистина технически, bash не е само черупка на Linux. Много (макар и не всички) от следните ще се прилагат за всяка система тип UNIX, включително Mac OSX и BSD.

Здравей свят

Традицията е да се започне нов "език", като се създаде прост скрипт за изписване на думите "Hello World!". Това е достатъчно лесно, просто отворете любимия си текстов редактор и въведете следното:

 #! / bin / bash echo Здравей свят! 

Само с две линии, тя не може да бъде много по-проста, но тази първа линия, #! / Bin / bash, може да не е веднага очевидна. Първите два знака (често наричани hashbang) са специален сигнал. Тя казва на Linux, че този скрипт трябва да се изпълнява през shell / bin / bash shell, за разлика от C shell или Korn shell или нещо друго, което може да сте инсталирали. Без него няма лесен начин Linux да разбере точно какъв тип скрипт на Shell е това. Скриптът на Python, например, вероятно ще започне с нещо като #! / Usr / bin / python .

След това е само изявлението за ехо, което отпечатва думите след него в терминала (технически, до стандартния изход ).

Стартиране на вашия скрипт

Както често се случва с Linux, има много начини да направите тази работа. Най-основният начин би бил да се обадя баш ръчно и да го захранвате с файла на скрипта, както в

 #Filename може да бъде всичко, .sh е често срещана практика за shell скриптове. bash myscript.sh 

Умните читатели може да мислят " Но чакайте, не направихме ли това хашбанг нещо, за да знае, че ще използва баш? Защо трябва да бягам ръчно? "И отговорът е" не сте го направили ". Най-малкото не бихте имали, ако бяхме отделили малко време, за да направим скрипта изпълним сам.

В предишния пример стартирахме bash и го изпратихме. Сега ще спестим малко време, като направим скрипта изпълним, така че не е нужно да изпълняваме баш ръчно. Това е толкова лесно, колкото и една команда.

 chmod + x myscript.sh 

И сега тя може да се изпълнява директно с името на файла.

Променливи и аргументи

Променливите в бас могат да бъдат малко по-объркващи от някои други скриптови езици, отчасти защото те понякога се нуждаят от предхождащ знак $ и понякога не - в зависимост от това, което правите. Вземете следния пример.

 PATH = $ Path: / Начало / Джош / скриптове 

Използваме същата променлива, PATH, два пъти. След като няма $, но друг път има. Има няколко начина, по които можете да си спомните кога е $ подходящо, но този автор използва "говореща" метафора. Ако говоря на променливата (например като й придам нова стойност), аз я наричам с краткото име, в този случай PATH. Ако говоря за променлива (като получаването на текущата си стойност), тя получава по-официално заглавие ($ PATH). Точното разсъждение и вътрешната работа на този дизайн са извън обхвата на това ръководство, така че просто се опитайте да запомните, че трябва да включите $, ако се опитвате да извлечете информацията в променлива.

Сега ще използваме променлива в нашия скрипт. Променете втория ред, така че да изглеждате по следния начин:

 #! / bin / bash echo Здравейте, $ 1! 

И отново изпълнете скрипта, но този път включвате името си след името на скрипта.

Баш автоматично задава определени променливи за вас, включително няколко такива като $ 1, $ 2 и т.н., които съдържат всеки от аргументите, предавани на скрипта. Променливите могат да бъдат превъзлагани и преименувани по начин, по който желаете, така че да можете да пренапишете предишния скрипт като

 #! / bin / bash първото име = $ 1 име = $ 2 echo Здравейте $ firstname $ lastname! 

Както можете да видите, няма признаци за $ при определяне на стойността на променливата, но вие имате нужда от тях, когато извадите информацията.

Условия и контури

Никакъв скрипт не би могъл да стигне много далеч, без да може да анализира или да прекъсва данните. Най-често срещаният метод за определяне на курса на действие е да използвате изявлението if. Тя работи много, както бихте очаквали - ако нещо НЕ ТРЯБВА да направи неща ELSE направи нещо различно. Този пример сравнява низ от символи, които съхраняваме в променливата на първото име, и го сравнява с някой твърд текст. Ако съвпадат, той отпечатва специален изход. В противен случай тя продължава нормално.

 #! / bin / bash първото име = $ 1 последно име = $ 2 ако ["$ firstname" == "Josh"] след това echo "Какво чудесно име" else echo Здравейте $ firstname $ lastname! Fi 

И накрая, следващият основен компонент е способността на bash да пренавива данните. Нормалните механизми за закръгляне на баш са FOR, WHILE, AND UNTIL. Ще започнем с това, тъй като това е най-простото.

 #! / bin / bash counter = 0 # Докато броячът е по-малък от 10, продължете да го въртите докато [$ counter -lt 50]; направи ехо $ брояч позволи брояч = брояч + 1 приключи 

Този пример създава контра променлива, започва цикъл и продължава цикъла (и добавя един към брояча), докато достигне ограничението, в този случай 50. Всичко след изявлението ще се изпълни след приключване на цикъла.

UNTIL действа подобно, но като обратното на WHILE. Скоростта на буквата ще продължи, докато нейният израз е вярен (брояч по-малък от 50). Процесът "до" взема обратния подход и ще бъде написан като

 до [$ counter -gt 50]; правя 

В този пример "докато по-малко от 50" и "до повече от 50" ще имат почти еднакви резултати (разликата е, че единият ще включва самия номер 50, а другият няма.) Изпробвайте го, за да видите кой, и защо.)

заключение

Както беше посочено по-горе, щеше да се наложи много повече от една статия Първи стъпки, за да се демонстрира напълно силата на скриптовете за баш. Изобразените тук парчета могат да се разглеждат като основни компоненти за това как работи bash и трябва да са достатъчни, за да ви покажат основните принципи зад скрипта за черупки в Linux. Ако наистина искате да влезете в червата и да започнете да правите някои страхотни скриптове, проверете тук официалното ръководство на GNU за баш. Честит скрипт!