Незалежно від дистрибутива 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.
Я сподіваюся і бажаю, щоб цей сценарій був для вас корисним.
Дуже добре і добре пояснено, але до чого відноситься параметр?
Дякую Мігелю!
Під параметром я розумію всю додаткову інформацію, яка подається до програми, функції або системи. Оскільки це може бути громіздким, дозвольте відповісти вам кількома прикладами.
У команді linux, щоб скопіювати файл a.txt у файл b.txt, ми б написали наступне:
$cp a.txt b.txt
Тут програма cp отримує два параметри, які є іменами двох файлів, першого (повинен існувати) a.txt та другого b.txt.
Інший приклад: якщо ви надсилаєте на друк із консолі за допомогою команди
$ lp файл.pdf
У цьому випадку "file.pdf" є параметром для програми lp.
Сподіваюся, я задовольнив ваші сумніви.
привіт
Мої коментарі не виходять, це відсутність поваги, я не повертаюся на цей форум.
Я не знаю, що сталося, у будь-якому випадку цей опублікували.
Привіт.