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ý.
Velmi dobré a dobře vysvětlené, ale na co odkazuje parametr?
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
Moje komentáře nevycházejí, je to nedostatek respektu, nevracím se na toto fórum znovu.
Nevím, co se stalo, každopádně tento byl publikován.
Zdravím.