Програмиране в bash - част 3

за сигурен nuestros концепции Ще научим 2 много полезни инструмента за програмиране, които работят перфектно в Bash. Научете се да създавате funciones и дефинирайте тръбопроводи в началото може да изглежда сложно, но след това ще видим огромното utilidad че ни предоставят.

Тръби

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

Тръбата обикновено се разпознава, като има символа | което позволява да се свързват изрази; Въпреки че се използва по подразбиране, има и други начини за създаване на тръби.

Пример: отпечатайте последните съобщения на ядрото

#dmesg ви позволява да видите последните съобщения на ядрото и заредени драйвери # по време на зареждане на системата; tail отпечатва последните части на файл или #command

dmesg | опашка

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

функции

Функциите са набор от изрази, които са групирани заедно, така че да могат да бъдат изпълнени няколко пъти, без да се налага да ги пренаписвате. Еквивалентно е на мисленето, че когато се научим да готвим даден вид храна, ще напишем рецептата й на лист и всеки път, когато искаме да готвим тази храна, се консултираме с рецептата, вместо да пренаписваме нов лист със същата рецепта.

Може би най-важното нещо за функциите е възможността за предаване на параметри, данни, които те ще използват, за да ги обработят и генерират изход. Неговата структура е следната:

функция функция-име {

процеси

}

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

# Определяме име на функция, може да е това, което ни харесва.

функция services_tcp {

#cat обединява и показва съдържанието на папката / etc / services, която е #, която съдържа всички услуги със свързаните с тях портове.

# първият grep взема списъка и премахва коментарите, като –v обръщаме резултата

# вторият grep показва само тези, свързани с tcp

котка / и т.н. / услуги | grep –v "^ #" | grep tcp

}

Когато трябва да изпълним тази функция, просто трябва да я извикаме с нейното име:

tcp_services

В този случай работи без параметри; В случай, че ги има, трябва да ги добавим, така че функцията да работи правилно, в противен случай функцията няма да работи правилно. Използването на return позволява на функцията да върне стойност в резултат на процеса.

Пример: функция с входни параметри, която изчислява сумата от 2 числа.

#! / Хамбар / Баш
функционална сума ()
{
# с нека можем да изпълним операцията вътре в кавичките
нека "резултат = $ 1 + $ 2"

#return позволява да се върне целочислената стойност. След като връщането бъде изпълнено, стойността ще бъде депозирана вътре в променливата $?
върнете $ резултат;
}
 
# Извиква се функцията sum и ние предаваме 2 входни параметъра.

добавете 2 3

# отпечатва стойността на $? с ехо, оценяващо действителната стойност на променливата в кавички
echo -e "Резултат = $?";

<< Отидете на предишната част

Благодаря ти Хуан Карлос Ортис!


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Nill указател каза той

    Не съм сигурен, но операторът return на функциите служи само за връщане на цяло число между 0 и 255, като кодовете за грешки на "изход", обикновено 0, ако всичко е наред и друго число за останалите случаи. Въпреки че в примера това работи, не мисля, че е добра практика връщането на резултата с връщане.
    Там казвам глупости, а! око! ха!

  2.   Джуанк каза той

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

  3.   Абел С. Планината Биг каза той

    Вярно е, че за да разрешите това, можете да използвате командата bc, във функцията за сумиране можете да използвате: result = `echo $ 1 + $ 2 | bc -ql`

  4.   Луис Мигел каза той

    добър,

    Бих искал да знам къде мога да запазя bash файловете, така че да стартират цялата система и това не е bin директорията, но може да бъде дом за архивиране.

    Благодаря и поздрави

  5.   Хоакин каза той

    Благодаря ви много, започвам със скриптовете и истината е, че това е много полезно, вие сте много любезен, споделяйки знанията си!
    поздрави

    1.    нека използваме linux каза той

      Благодаря ти! Прегръдка!
      Пабло

  6.   CRISTHIAN каза той

    Синтаксична грешка: "(" неочаквано
    Получавам грешка при опит за стартиране на примера, копирах го точно по същия начин

    Какво може да бъде? аз съм на ubuntu 14.10