Какво е Shell Scripting и защо трябва да го използвате

Какво е Shell Scripting и защо трябва да го използвате

Черупката е програма в операционна система Linux или Unix, която ви позволява да въвеждате команди за изпълнение от системата. Когато терминален прозорец се отвори на компютър с Linux, той стартира програмата на черупката, която представя интерфейс за въвеждане на команди. Този интерфейс е известен като интерфейс на командния ред. Когато се въведе команда, тя се изпълнява от черупката и изходът се показва на екрана.





Освен че може да приема и изпълнява команди интерактивно, черупката може да изпълнява и команди, съхранявани във файл. Този начин на изпълнение е известен като скриптове на черупки , и в тази статия ние обхващаме основите на скриптовете на обвивката.





1. История на черупката

Започвайки с Unix през 70 -те години, имаше обвивка, наречена V6 Shell разработен от Кен Томсън. Това беше интерактивна обвивка и нямаше способности за скриптове.





Той беше последван от Борн Шел през 1977 г. и продължава да се използва днес като обвивка по подразбиране за корен сметка. Тази черупка добави скриптови способности, които се оказаха изключително полезни на практика през годините.

По -нататъшното развитие на черупката през 80 -те години на миналия век даде началото на много популярни варианти на черупки, най -популярните от които бяха C-Shell и Корн Shell . Всяка от тези черупки носи свой собствен синтаксис, който в определени случаи е драстично различен от оригиналната обвивка.



Една от най -популярните черупки днес е Bash Shell . Bash означава Bourne-Again-Shell и е значително подобрен вариант на оригиналния Bourne Shell.

как да накарате Windows 10 да работи по -бързо

В тази статия ние описваме скриптове на черупки за черупката Bash .





2. Изпълнение на Shell Script

Как се изпълнява скрипт на обвивка? Прост. Просто предайте пътя на скрипта като аргумент на черупката:

Примерен скрипт на черупка:





echo 'hello world'

Изпълнете го по следния начин:

$ bash hello.sh
# prints
hello world

Забележка: Черупката изисква редовете да бъдат завършени от LF знаци (Line-Feed). Ако напишете скрипта на черупката си в Windows и се опитате да го изпълните директно в Linux система, може да срещнете грешки. Windows използва комбинация CR-LF (Carriage-Return-Line-Feed) за прекратяване на линия. Това трябва да се преобразува само в LF. Проверете редактора на Windows за начини да направите това.

Има и друг начин за изпълнение на скрипт на обвивката директно като команда. Вмъкнете следния ред ( хашбанг декларация) като първи ред на вашия скрипт на обвивката.

Google Play Магазин няма да се актуализира
#!/bin/bash

С тази промяна нашият прост скрипт на черупката сега е:

#!/bin/bash
echo 'hello world'

Сега трябва да направите скриптовия файл изпълним, както следва:

$ chmod +x hello.sh

В този момент можете да изпълните скриптовия файл директно, без да се налага изрично да се позовавате на черупката.

$ hello.sh
# prints
hello world

Нека сега разгледаме някои предимства от използването на скриптове на обвивката.

3. Автоматизация на задачи

Първото предимство на използването на скриптове на обвивката е автоматизирането на често изпълнявани задачи. Да предположим, че имате задача, която трябва да изпълнявате всеки ден. Ако трябва да изпълнявате множество команди на вашата Linux система всеки ден, можете да съхранявате тези команди във файл и да стартирате скрипта. Примерите включват:

  • Архивирайте и качвайте всеки ден файл или папка в съхранение в облак като S3.
  • Компресирайте лог файлове, които са склонни да растат всеки ден.
  • Извличайте цените на акциите, анализирайте изтеглените данни и задействайте имейл или SMS, когато са изпълнени определени условия (твърде високи или твърде ниски цени).

4. Комбиниране на множество команди

В допълнение към автоматизирането на чести задачи, може да се окаже и изгодно, че можете да комбинирате множество последователности от команди в една команда. Запомнянето на една команда е много по -просто от множество команди, да не говорим за реда, в който те трябва да бъдат изпълнени.

Пример би била последователността на стартиране на самата операционна система Linux. Като част от стартирането, операционната система изпълнява редица команди, за да приведе системата в подходящо състояние. Тези команди всъщност са скриптове на обвивка, които живеят под /и т.н. директория. Ако погледнете един от тези скриптове на обвивката, ще осъзнаете сложността на зареждането на система, която може да е трябвало да извършите на ръка при липса на скриптове на обвивката.

Следва примерен скрипт на обвивката, /etc/profile , което се изпълнява всеки път, когато потребител влезе. Представете си, че въвеждате тези команди на ръка!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. По -лесно за развитие

Възможно е да се извършват същите действия като скрипта на обвивката в обикновена програма, написана на C/C ++. Въпреки това е много по -лесно да се напише и отстрани грешка скрипт, отколкото програма на C/C ++. Особено за задачи за системно администриране, които включват изпълнение на външни команди, създаване и премахване на файлове и директории, пренасочване на изхода и т.н.

Програмите на C/C ++ са по -добри за много по -ниско ниво на работа, като например извикване на системни повиквания, манипулиране на структури от данни и т.н.

6. Прозрачност

Скриптът на черупката, по силата на това, че е текстов файл, може лесно да бъде прегледан, за да проверите какви действия изпълнява. За разлика от това, единственият начин, по който някога ще разберете какво прави програма, написана на език като C/C ++ (и компилирана на изпълним файл), е ако реши да ви каже или ако имате достъп до изходния код. Например, можете да проверите дали скриптът на обвивката изтрива файлове и ако имате нужда от тези файлове, можете да ги копирате на друго място.

Също така е много по -лесно да се диагностицират проблеми с скриптове на обвивката, отколкото с обикновени програми, тъй като можете да погледнете изходния код. Дали този скрипт е неуспешен, защото директория не съществува? Можете да погледнете в кода на скрипта и да създадете директорията (въпреки че добре поддържаният скрипт на черупката трябва да я провери и създаде, за да избегне подобни грешки).

7. Преносим

ДА СЕ скрипт на обвивката могат да бъдат прехвърлени на други Unix и Unix-подобни операционни системи и изпълнени (ако присъства самата обвивка). Дори когато прехвърляте скрипт на обвивка от различни архитектури като x86, MIPS, Sparc и т.н., скриптовете на черупката са много по -преносими от C/C ++ програмите.

Единственият начин C/C ++ програма да бъде прехвърлена и използвана в друга система е да копирате изходния код, да създадете програмата и да опитате да я изпълните. Дори и тогава може да не работи според очакванията, ако използва специфичен за архитектурата код.

Сега, когато имате представа какво представляват скриптовете на черупките и техните многобройни предимства, не бихте ли искали да ги използвате за вашите задачи? С какви проблеми сте се сблъсквали, когато ги използвате? Моля, уведомете ни в коментарите по -долу.

моят контролер за xbox one няма да работи
Дял Дял Туит електронна поща 5 съвета за зареждане на вашите VirtualBox Linux машини

Уморени ли сте от лошото представяне на виртуалните машини? Ето какво трябва да направите, за да увеличите производителността на VirtualBox.

Прочетете Напред
Свързани теми
  • Програмиране
  • Linux Bash Shell
За автора Джей Шридхар(17 статии са публикувани) Още от Джей Шридхар

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате