Vytvořte si vlastní skripty pomocí bash

Učení Linuxu

Bez ohledu na distribuci Linuxu, kterou používáme, nepochybuji, že můj oblíbený je Ubuntu―, jakmile začneme používat tento systém, jisté potřeby automatizace. To znamená: vytvořte náš vlastní příkazy kteří provádějí určité příkazy osobně. Tato potřeba může být způsobena určitými příčinami:

  • Zjednodušte syntaxi příkazů, které obvykle provádíme.
  • Podnikněte akce, které se týkají všech potřeba, která se v systému nepředpokládá provozní.
  • Sekvenční objednávky které vytrvale opakujeme.

Ačkoli bash skript lze spustit v / z libovolného adresáře, obvykle je vytvořte adresář pro hostování těchto skriptů. V mém případě:

$ mkdir /home/pedro/.bin

Tomu věřím adresář (skrytý před tečkou před jménem) držet všechny skripty, které tam používám. To, že je název adresáře skrytý, nemá žádný jiný význam než - pokud není výslovně uvedeno jinak - se nezobrazí při prohlížení / home / pedro z prohlížeče souborů v grafickém režimu.

Teď musíš informujte Linux, že by se tam měl také podívat (/home/pedro/.bin) příkazy, které jsou prováděny z terminálu.

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

Tímto způsobem tam systém vyhledá naše objednávky dokud relaci neuzavřeme. Aby bylo toto sdružení trvalé:

$ sudo nano /etc/environment

a přidáme

:/home/pedro/.bin

na konci řádku PATH je velmi důležité nezapomenout na dvojtečku před adresářem, který zahrnujeme, protože toto je mechanismus přidání.

Náš první krok za krokem skript

Vytvoříme náš soubor, jako je tento v mém případě:

$ touch ~/.bin/donde

Chcete-li jej upravit, můžete použít preferovaný editor nebo postupovat podle této indikace:

$ gedit ~/.bin/donde &

A přidáme následující obsah:

#!/usr/bin/env bash

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

Analýza skriptů

Naše první telefonní linka «Shebang»(#! / Usr / bin / env bash) požádat Linux o hlášení kde je umístěn bash shell a že to, co následuje, se provádí podle požadavků bash. Toto opatření je vhodné se ujistit, že naše skripty fungují na jakékoli instalaci. Další možný Shebang smál se:

#!/bin/bash

Rozdíl mezi nimi může být velmi podivný a já to vysvětlím. V tomto posledním Předpokládám, že v našem systému bash shell je na adrese / bin / bash. Kde však navrhuji ve scénáři Myslím, že nevím, kde to je tlumočník bash. Žádám systém, aby tuto adresu poskytl.

Třetí řádek: Jak vidíte, druhý řádek je if. Pro bash znaky «$#« obsahovat počet parametrů, které předáváme z příkazového řádku. Proto »pokud [$ # -lt 1];» doslovně znamená „pokud je počet parametrů menší než 1“.

Čtvrtý řádek: Pak (doslovně překládáno z angličtiny: tehdy), zde je naznačeno, co přijde dál bude provedeno při vyhodnocení stavu if být pravdivý: jinými slovy, počet parametrů je menší než 1, tj. nula.

Pátý řádek: Pokud provedeme náš skript bez jakýchkoli parametrů, ukážeme v terminálu «Musíte předat parametr».

Šestý řádek: Označuje, že bude provedeno následující když podmínka, kterou jsme deklarovali, není pravdivá.

Sedmý řádek: Se spustit příkaz «kde je« doprovázeno obsahem, který jsme předali první parametr.

Osmý řádek: s «fi»Označuje, že blok končí if.

Testování našeho skriptu

Je důležité, přidat oprávnění k zápisu ke skriptu:

$ chmod -x ~/.bin/donde

Bez toho by se zobrazila chyba „povolení odepřeno“.. Poté můžeme spustit náš skript.

$ donde php

Mělo by nám ukázat umístění binárních souborů php, jejich zdrojových souborů a manuálových stránek. Něco takového:

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

Rekapitulace

  • Povolujeme a ".bin" adresář pro uložení našich skriptů.
  • Poskytujeme informace pro Linux, aby tento adresář zahrnoval do vyhledávání příkazů.
  • Vytvoříme náš skript.
  • Rozdíl mezi jiné Shebang.
  • Použití počet parametrů předaných s $ #.
  • Použití první parametr s $1.

Doufám a přeji si, aby byl tento skript pro vás užitečný.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Miguel řekl

    Velmi dobré a dobře vysvětlené, ale na co odkazuje parametr?

    1.    Zástupný obrázek pro Pedro Ruiz Hidalgo řekl

      Díky Miguel!

      Rozumím parametru všechny doplňující informace, které jsou dodávány do programu, funkce nebo systému. Protože to může být těžkopádné, dovolte mi odpovědět vám s několika příklady.

      V příkazu linux ke zkopírování souboru a.txt do souboru b.txt napíšeme následující:

      $cp a.txt b.txt

      Program cp zde přijímá dva parametry, které jsou názvy dvou souborů, první (musí existovat) a.txt a druhý b.txt.

      Další příklad: Pokud odešlete k tisku z konzoly pomocí příkazu

      $ lp soubor.pdf

      V tomto případě je soubor „file.pdf“ parametrem programu lp.

      Doufám, že jsem uspokojil vaše pochybnosti.

      pozdravy

  2.   Miguel řekl

    Moje komentáře nevycházejí, je to nedostatek respektu, nevracím se na toto fórum znovu.

    1.    Zástupný obrázek pro Pedro Ruiz Hidalgo řekl

      Nevím, co se stalo, každopádně tento byl publikován.

      Zdravím.