Независимо от дистрибуцията на Linux, която използваме, „не се съмнявам, че любимият ми е Ubuntu“, веднага щом започнем да използваме тази система, някои нужди от автоматизация. Тоест: създайте нашата собствени команди които изпълняват определени команди по персонализиран начин. Тази нужда може да се дължи на определени причини:
- Опростете синтаксиса от командите, които обикновено изпълняваме.
- Предприемайте действия, които обхващат всякакви нужда, която не е предвидена в системата оперативен.
- Поръчки за последователност че усърдно повтаряме.
Въпреки че bash скриптът може да се стартира във / от всяка директория, това обикновено е създайте директория за хостване на тези скриптове. В моя случай:
$ mkdir /home/pedro/.bin
Вярвам в това директория (скрита чрез водене на периода пред името) да държа всички скриптове, които използвам там. Това, че името на директорията е скрито, няма друго значение освен - освен ако изрично не е посочено друго - няма да се появи при преглед / начало / педро от инструмента за преглед на файлове в графичен режим.
Сега трябва информирайте Linux, че той също трябва да търси там (/home/pedro/.bin) поръчките, които се изпълняват от терминала.
$ PATH=$PATH;/home/pedro/.bin
По този начин системата ще търси нашите поръчки там докато не затворим сесията. За да направите тази асоциация постоянна:
$ sudo nano /etc/environment
и добавяме
:/home/pedro/.bin
в края на реда PATH е много важно да не забравяме двоеточието преди адреса на директорията, която включваме, тъй като това е механизмът за добавяне.
Индекс
Първият ни стъпка по стъпка скрипт
Ние създаваме нашия файл, като този в моя случай:
$ touch ~/.bin/donde
И за да го редактирате, можете да използвате предпочитания редактор или да следвате тази индикация:
$ gedit ~/.bin/donde &
И ние добавяме следното съдържание:
#!/usr/bin/env bash if [ $# -lt 1 ]; then echo "Necesitas pasar un parámetro" else whereis $1 fi
Анализ на скриптове
Първата ни линия за обаждане «шебанг»(#! / Usr / bin / env bash) помолете Linux да докладва където се намира черупката на bash и че това, което следва, се изпълнява в съответствие с изискванията на bash. Тази предпазна мярка удобно е да се уверите, че нашите скриптове работят при всяка инсталация. Друг възможен шебанг той се засмя:
#!/bin/bash
Разликата между тях може да бъде много странна и аз ще я обясня. В тази последна Предполагам, че в нашата система черупката на bash е на / bin / bash адрес. Въпреки това, където предлагам в сценария Предполагам, че не знам къде е тълкувателят на bash. Моля системата да му предостави този адрес.
Трети ред: Както виждате, вторият ред е if. За баш героите «$#« съдържат броя параметри, които предаваме от командния ред. Следователно, »ако [$ # -lt 1];» буквално означава "ако броят на параметрите е по-малък от 1".
Четвърти ред: След това (в буквален превод от английски: тогава), тук е посочено, че какво следва ще бъде изпълнено, когато оценката на състоянието if Бъди искрен: с други думи, броят на параметрите е по-малък от 1, т.е. нула.
Пети ред: Ако изпълним скрипта си без никакви параметри, ще покажем в терминала «Трябва да предадете параметър».
Шести ред: Показва, че това, което следва, ще бъде изпълнено когато условието, което сме декларирали, не е вярно.
Седми ред: Se изпълнете командата «къде е« придружен от съдържанието, което сме предали като първи параметър.
Осми ред: с «fi»Показва, че блокът свършва if.
Тестване на нашия скрипт
Важно е добавяне на разрешения за запис към скрипта:
$ chmod -x ~/.bin/donde
Без това ще се появи грешка „отказано разрешение“.. След това можем да стартираме нашия скрипт.
$ donde php
Той трябва да ни покаже местоположението на 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
Рекапиране
- Активираме a ".bin" директория за съхранение на нашите скриптове.
- Ние осигуряваме информация за Linux, за да включи тази директория в своите командни търсения.
- Ние създаваме нашия скрипт.
- Разлика между различен шебанг.
- Използване на брой параметри, предадени с $ #.
- Използване на първи параметър с $1.
Надявам се и желая този скрипт да е полезен за вас.
4 коментара, оставете своя
Много добре и добре обяснено, но за какво се отнася параметърът?
Благодаря Мигел!
Под параметър разбирам цялата допълнителна информация, която се предоставя на програма, функция или система. Тъй като това може да е тромаво, позволете ми да ви отговоря с няколко примера.
В командата linux за копиране на файла a.txt във файла b.txt бихме написали следното:
$cp a.txt b.txt
Програмата cp тук получава два параметъра, които са имената на два файла, първият (трябва да съществува) a.txt и вторият b.txt.
Друг пример: Ако изпратите за печат от конзолата с командата
$ lp файл.pdf
В този случай "file.pdf" е параметър за lp програмата.
Надявам се да съм задоволил съмненията ви.
поздрави
Коментарите ми не излизат, това е липса на уважение, не се връщам към този форум.
Не знам какво се е случило, във всеки случай този е публикуван.
Поздрави.