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

Учење Линука

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

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

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

$ 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.

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