Независимо от того, какой дистрибутив Linux мы используем, «несомненно, что мне больше всего нравится Ubuntu», как только мы начнем использовать эту систему, определенные потребности автоматизации. То есть: создать наш собственные команды которые выполняют определенные команды индивидуально. Такая необходимость может быть вызвана определенными причинами:
- Упростите синтаксис команд, которые мы обычно выполняем.
- Предпринимайте действия, которые охватывают любые потребность, которая не предусмотрена в системе оперативный.
- Последовательность заказов что мы усердно повторяем.
Хотя сценарий bash можно запускать в / из любого каталога, обычно он создать каталог для размещения этих скриптов. В моем случае:
$ mkdir /home/pedro/.bin
Я верю в это каталог (скрывается точкой перед именем) чтобы хранить там все скрипты, которые я использую. То, что имя каталога скрыто, не имеет другого значения, кроме - если явно не указано иное - не будет отображаться при просмотре / home / pedro из программы просмотра файлов в графическом режиме.
Теперь тебе нужно сообщить 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. Для bash символы «$#« содержат количество параметров, которые мы передаем из командной строки. Следовательно, »if [$ # -lt 1];» буквально означает "если количество параметров меньше 1".
Четвертая строка: Затем (дословно перевод с английского: then), здесь указано, что будет дальше будет выполнено, когда оценка состояния 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
Резюме
- Мы даем возможность каталог ".bin" для размещения наших скриптов.
- Мы предоставляем информация для Linux, чтобы включить этот каталог в поиски команд.
- Создаем свой скрипт.
- Разница между другой притон.
- Использование количество параметров, переданных с помощью $ #.
- Использование первый параметр con $1.
Надеюсь и желаю, чтобы этот скрипт был вам полезен.
Очень хорошо и хорошо объяснено, но к чему относится параметр?
Спасибо, Мигель!
Я понимаю под параметром всю дополнительную информацию, которая предоставляется программе, функции или системе. Поскольку это может быть обременительно, позвольте мне ответить вам несколькими примерами.
В команде linux для копирования файла a.txt в файл b.txt мы бы написали следующее:
$cp a.txt b.txt
Программа cp здесь получает два параметра, которые являются именами двух файлов: первый (должен существовать) a.txt и второй b.txt.
Другой пример: если вы отправляете на печать с консоли с помощью команды
$ lp file.pdf
В этом случае "file.pdf" является параметром программы lp.
Надеюсь, я развеял ваши сомнения.
привет
Мои комментарии не появляются, это неуважение, я не возвращаюсь на этот форум.
Я не знаю, что произошло, во всяком случае, это опубликовано.
Привет.