Креирајте сопствене скрипте користећи басх

Учење Линука

Без обзира на Линук дистрибуцију коју користимо, „не сумњам да ми је најдражи Убунту― чим уђемо у употребу овог система, одређени потребе аутоматизације. Односно: створите наше сопствене команде који извршавају одређене команде на персонализован начин. Ова потреба може бити због одређених узрока:

  • Поједноставите синтаксу наредби које обично извршавамо.
  • Предузмите радње које покривају било који потреба која није предвиђена у систему оперативни.
  • Редослед редоследа које марљиво понављамо.

Иако се басх скрипта може покренути у било којем директоријуму, то је обично креирајте директоријум за хостовање ових скрипти. У мом случају:

$ mkdir /home/pedro/.bin

Верујем у ово директоријум (скривен водећом тачком испред имена) да тамо држим све скрипте које користим. То што је име директорија скривено нема друго значење осим - уколико није изричито наведено другачије - неће се појавити приликом прегледа / хоме / педро из прегледача датотека у графичком режиму.

Сад мораш обавестите Линук да и тамо треба да погледа (/хоме/педро/.бин) налози који се извршавају са терминала.

$ PATH=$PATH;/home/pedro/.bin

На овај начин систем ће тамо тражити наше поруџбине док не затворимо сесију. Да ово удружење постане трајно:

$ sudo nano /etc/environment

и додајемо

:/home/pedro/.bin

на крају реда ПАТХ, веома је важно не заборавити двотачку испред адресе директоријума који укључујемо, јер ово је механизам сабирања.

Наш први корак-по-корак скрипта

Ми креирамо нашу датотеку, овако у мом случају:

$ touch ~/.bin/donde

А да бисте га уредили, можете користити жељени уређивач или следити ову индикацију:

$ gedit ~/.bin/donde &

И додајемо следећи садржај:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

Анализа скрипти

Наша прва линија позива «ствар»(#! / Уср / бин / енв басх) замолите Линук да извештава где се налази басх шкољка и да се оно што следи извршава у складу са Басховим захтевима. Ова мера предострожности погодно је осигурати да наше скрипте раде на било којој инсталацији. Још једна могућа ствар смејао се:

#!/bin/bash

Разлика између њих може бити врло застрашујућа и објаснићу. У овом последњем Претпостављам да је то у нашем систему басх љуска је на / бин / басх адреси. Међутим, тамо где предложим у сценарију Претпостављам да не знам где је басх тумач. Молим систем да он наведе ту адресу.

Трећи ред: Као што видите, други ред је иф. За басх ликове «$#« садрже број параметара које преносимо из командне линије. Према томе, »иф [$ # -лт 1];» дословно значи „ако је број параметара мањи од 1“.

Четврти ред: Онда (дословно превод са енглеског: тада), овде је назначено шта следи извршиће се када се изврши процена стања if бити истинит: другим речима, број параметара је мањи од 1, односно нула.

Пети ред: Ако нашу скрипту извршимо без икаквих параметара, у терминалу ћемо приказати «Треба да проследите параметар».

Шести ред: Означава да ће се извршити оно што следи када услов који смо прогласили није тачан.

Седми ред: Се покрените команду «вхереис« праћен садржајем који смо пренели као први параметар.

Осми ред: са «fi»Означава да се блок завршава if.

Тестирање наше скрипте

Важно је додајте дозволе за писање на скрипту:

$ chmod -x ~/.bin/donde

Без тога би се појавила грешка „одбијена дозвола“.. После тога можемо покренути нашу скрипту.

$ donde php

Требало би да нам покаже локацију пхп бинарних датотека, њихове изворне датотеке и ман странице. Тако нешто:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

Рецаппинг

  • Омогућавамо а ".бин" директоријум за смештај наших скрипти.
  • Нудимо информације за Линук да би овај директоријум укључио у своја претраживања наредби.
  • Ми креирамо нашу скрипту.
  • Разлика између различит ствар.
  • Употреба број параметара прослеђених са $ #.
  • Употреба први параметар са $1.

Надам се и желим да вам је ова скрипта корисна.


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

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   miguel дијо

    Врло добро и добро објашњено, али на шта се односи параметар?

    1.    Слика резервног места Педро Руиз Хидалго дијо

      Хвала Мигуел!

      Под параметром разумем све комплементарне информације које се достављају програму, функцији или систему. Како ово може бити незгодно, одговорићу вам са неколико примера.

      У линук наредби за копирање датотеке а.ткт у датотеку б.ткт написали бисмо следеће:

      $ цп а.ткт б.ткт

      Овде цп програм прима два параметра која су имена две датотеке, прве (мора постојати) а.ткт и друге б.ткт.

      Још један пример: Ако команду шаљете за штампање са конзоле

      $ лп датотека.пдф

      У овом случају „филе.пдф“ је параметар за лп програм.

      Надам се да сам удовољио вашим сумњама.

      поздрави

  2.   miguel дијо

    Моји коментари се не појављују, то је недостатак поштовања, не враћам се на овај форум.

    1.    Слика резервног места Педро Руиз Хидалго дијо

      Не знам шта се догодило, у сваком случају овај је објављен.

      Поздрав.