Створюйте власні сценарії за допомогою bash

Вивчення Linux

Незалежно від дистрибутива 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 повідомити де знаходиться оболонка баша і що наступне буде виконано відповідно до вимог Баша. Це запобіжний захід зручно переконатися, що наші скрипти працюють на будь-якій установці. Інший можливий притон він засміявся:

#!/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.

Я сподіваюся і бажаю, щоб цей сценарій був для вас корисним.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Мігел - сказав він

    Дуже добре і добре пояснено, але до чого відноситься параметр?

    1.    Зображення заповнювача Педро Руїса Ідальго - сказав він

      Дякую Мігелю!

      Під параметром я розумію всю додаткову інформацію, яка подається до програми, функції або системи. Оскільки це може бути громіздким, дозвольте відповісти вам кількома прикладами.

      У команді linux, щоб скопіювати файл a.txt у файл b.txt, ми б написали наступне:

      $cp a.txt b.txt

      Тут програма cp отримує два параметри, які є іменами двох файлів, першого (повинен існувати) a.txt та другого b.txt.

      Інший приклад: якщо ви надсилаєте на друк із консолі за допомогою команди

      $ lp файл.pdf

      У цьому випадку "file.pdf" є параметром для програми lp.

      Сподіваюся, я задовольнив ваші сумніви.

      привіт

  2.   Мігел - сказав він

    Мої коментарі не виходять, це відсутність поваги, я не повертаюся на цей форум.

    1.    Зображення заповнювача Педро Руїса Ідальго - сказав він

      Я не знаю, що сталося, у будь-якому випадку цей опублікували.

      Привіт.