30 Примери Басх скрипти

30 Bash Script Examples




Басх скрипте се могу користити у различите сврхе, као што су извршавање наредбе љуске, покретање више наредби заједно, прилагођавање административних задатака, извршавање аутоматизације задатака итд. Тако да је познавање основа програмирања басх важно за сваког корисника Линука. Овај чланак ће вам помоћи да стекнете основну идеју о басх програмирању. Већина уобичајених операција басх скриптирања овде је објашњено врло једноставним примерима.

Следеће теме басх програмирања обрађене су у овом чланку.







  1. Здраво Свете
  2. Ецхо Цомманд
  3. Коментари
  4. Коментар у више редова
  5. Вхиле Лооп
  6. Фор Лооп
  7. Добијте унос корисника
  8. Ако изјава
  9. И услов ако изјава
  10. Или Изјава услов ако
  11. У супротном услов ако и друго
  12. Цасе Цондитион
  13. Преузмите аргументе из командне линије
  14. Добијте аргументе из командне линије са именима
  15. Комбинујте два низа у променљивој
  16. Набавите подниз стрингова
  17. Додајте 2 броја у променљиву
  18. Креирајте функцију
  19. Користите параметре функција
  20. Пренесите повратну вредност из скрипте
  21. Направите директоријум
  22. Направите директоријум тако што ћете проверити постојање
  23. Прочитајте датотеку
  24. Избришите датотеку
  25. Додати у датотеку
  26. Тестирајте да ли датотека постоји
  27. Пример слања е -поште
  28. Добијте тренутни датум рашчлањивања
  29. Сачекајте команду
  30. Слееп Цомманд

Креирајте и извршите први БАСХ програм:

Можете покренути басх скрипту са терминала или извршавањем било које басх датотеке. Покрените следећу команду са терминала да бисте извршили врло једноставну басх наредбу. Излаз наредбе ће бити „ Здраво Свете '.



$Избацио 'Здраво Свете'



Отворите било који уређивач да бисте креирали басх датотеку. Овде, нано Уређивач се користи за креирање датотеке, а назив датотеке је подешен као „ Прво.сх ’





$наноФирст.сх

Додајте следећу басх скрипту у датотеку и сачувајте је.

#!/бин/басх
Избацио 'Здраво Свете'



Басх датотеку можете покренути на два начина. Један начин је употреба команде басх, а други је постављање дозволе за извршавање за басх датотеку и покретање датотеке. Овде су приказана оба начина.

$басхФирст.сх

Или,

$цхмода+к Фирст.сх
$./Фирст.сх

Иди на врх

Употреба наредбе ецхо:

Можете користити ецхо команду са различитим опцијама. Неке корисне опције наведене су у следећем примеру. Када користите „ Избацио ’Без икакве опције, тада се подразумевано додаје нови ред. '-Н' опција се користи за штампање било ког текста без нове линије и '-И' Опција се користи за уклањање знакова обрнуте косе црте са излаза. Направите нову басх датотеку са именом, „ ецхо_екампле.сх “И додајте следеће писмо.

#!/бин/басх
Избацио 'Штампање текста са новим редом'
Избацио „Штампање текста без новог реда“
Избацио ' нУклањање тобрнута коса црта тликови н'

Покрените датотеку помоћу команде басх.

$басхецхо_екампле.сх

Иди на врх

Употреба коментара:

„#“ симбол се користи за додавање једноредног коментара у басх скрипту. Направите нову датотеку под називом „ цоммент_екампле.сх ’ и додајте следећу скрипту са коментаром у једном реду.

#!/бин/басх

# Додајте две нумеричке вредности
((збир=25+35))

#Одштампајте резултат
Избацио $ сум

Покрените датотеку помоћу команде басх.

$басхцоммент_екампле.сх

Иди на врх

Употреба вишередног коментара:

Можете користити вишередни коментар у басху на различите начине. У следећем примеру приказан је једноставан начин. Направите нови басх по имену, „Мултилине-цоммент.сх“ и додајте следеће писмо. Овде, „:“ и ' симболи се користе за додавање вишередног коментара у басх скрипту. Ова следећа скрипта ће израчунати квадрат од 5.

#!/бин/басх
:'
Следећа скрипта израчунава
квадратна вредност броја, 5.
'

((области=5*5))
Избацио $ ареа

Покрените датотеку помоћу команде басх.

$басхмултилине-цоммент.сх

Можете проверити следећу везу да бисте сазнали више о употреби басх коментара.

хттпс://линукхинт.цом/басх_цомментс/

Иди на врх

Користећи Вхиле Лооп:

Направите басх датотеку са именом, „Вхиле_екампле.сх“, да знају употребу док петља. У примеру, док петља ће понављати за 5 пута. Вредност цоунт променљива ће се повећати за 1 у сваком кораку. Када је вредност од цоунт променљива ће 5 тада док петља ће се прекинути.

#!/бин/басх
важи=истина
цоунт=1
док [ $ валид ]
урадити
Избацио $ цоунт
ако [ $ цоунт -ек 5 ];
онда
пауза
бити
((цоунт ++))
Готово

Покрените датотеку помоћу команде басх.

$басхвхиле_екампле.сх

Можете проверити следећу везу да бисте сазнали више о употреби вхиле петље.

хттпс://линукхинт.цом/басх- медтем-лооп-екамплес/

Иди на врх

Коришћење Фор Лооп:

Основна за декларација петље приказана је у следећем примеру. Направите датотеку под називом „ фор_екампле.сх “И додајте следећу скрипту помоћу за петља. Овде, за петља ће понављати за 10 пута и одштампа све вредности променљиве, цоунтер у једном реду.

#!/бин/басх
за (( цоунтер=10; цоунтер>0; бројач--))
урадити
Избацио '$ цоунтер'
Готово
принтф ' н'

Покрените датотеку помоћу команде басх.

$басхфор_екампле.сх

Можете користити фор лооп за различите сврхе и начине у вашем басх скрипту. Можете проверити следећу везу да бисте сазнали више о употреби фор петље.

хттпс://линукхинт.цом/басх-фор-лооп-екамплес/

Иди на врх

Добијте унос корисника:

' читати ’Команда се користи за унос података од корисника у басх. Направите датотеку под називом „ усер_инпут.сх “И додајте следећу скрипту за преузимање уноса од корисника. Овде ће једна вредност низа бити преузета од корисника и приказати вредност комбиновањем друге вредности низа.

#!/бин/басх
Избацио 'Унесите своје име'
читатииме
Избацио 'Добродошли$ намена ЛинукХинт '

Покрените датотеку помоћу команде басх.

$басхусер_инпут.сх

Можете проверити следећу везу да бисте сазнали више о употреби корисничког уноса.

хттпс://линукхинт.цом/басх-сцрипт-усер-инпут/

Иди на врх

Користећи иф наредбу:

Можете користити ако услов са једним или више услова. Почетни и завршни блок ове наредбе је дефинисан са 'ако' и 'бити' . Направите датотеку под називом „ симпле_иф.сх ’Са следећом скриптом да бисте сазнали употребу ако изјава у басх. Овде, 10 је додељен променљивој, н . ако је вредност од $ н је мањи од 10 онда ће излаз бити То је једноцифрени број , у супротном ће излаз бити То је двоцифрени број . За поређење, '-Лт' се овде користи. За поређење, такође можете користити '-Ек' за једнакост , '-борн' за не једнакост и '-Гт' за веће од басх скриптом.

#!/бин/басх
н=10
ако [ $ н -лт 10 ];
онда
Избацио 'То је једноцифрени број'
елсе
Избацио 'То је двоцифрени број'
бити

Покрените датотеку помоћу команде басх.

$басхсимпле_иф.сх

Иди на врх

Користећи иф наредбу са АНД логиком:

Различити типови логичких услова могу се користити у иф наредби са два или више услова. Како можете дефинисати више услова у иф наредби која користи И логика је приказана у следећем примеру. '&&' користи се за примену И логика ако изјава. Направите датотеку под називом „Иф_витх_АНД.сх“ да бисте проверили следећи код. Овде је вредност корисничко име и Лозинка променљиве ће бити преузете од корисника и упоређене са „ админ ' и ' тајна ’. Ако се обје вриједности подударају, излаз ће бити важећи корисник , у супротном ће излаз бити Неважећи корисник .

! /сам/басх

Избацио 'Унесите име'
читатикорисничко име
Избацио 'Унесите лозинку'
читатиЛозинка

ако [[ ( $ корисничко име=='админ' && $ лозинка=='тајна' ) ]];онда
Избацио „важећи корисник“
елсе
Избацио 'Неважећи корисник'
бити

Покрените датотеку помоћу команде басх.

$басхиф_витх_АНД.сх

Иди на врх

Користећи иф наредбу са логиком ИЛИ:

' || ’Се користи за дефинисање ИЛИ логика у ако стање. Направите датотеку под називом „Иф_витх_ОР.сх“ са следећим кодом за проверу употребе ИЛИ логика ако изјава. Овде је вредност н биће преузета од корисника. Ако је вредност једнака петнаест или Четири, пет онда ће излаз бити Добили сте игру , у супротном ће излаз бити Изгубили сте игру .

#!/бин/басх

Избацио „Унесите било који број“
читатин

ако [[ ( $ н -ек петнаест || $ н -ек Четири, пет ) ]]
онда
Избацио 'Победио си у игри'
елсе
Избацио 'Изгубили сте игру'
бити

Покрените датотеку помоћу команде басх.

$басхиф_витх_ОР.сх

Иди на врх

Користећи елсе иф наредбу:

Употреба иначе ако услов се мало разликује у басх -у од других програмских језика. ‘ елиф ’Се користи за дефинисање иначе ако стање у басх. Направите датотеку под називом „ елсеиф_екампле.сх “И додајте следећу скрипту да бисте проверили како иначе ако је дефинисан басх скриптом.

#!/бин/басх

Избацио „Унесите свој срећан број“
читатин

ако [ $ н -ек 101 ];
онда
Избацио 'Добио си прву награду'
елиф [ $ н -ек 510 ];
онда
Избацио 'Добио си другу награду'
елиф [ $ н -ек 999 ];
онда
Избацио 'Добио си трећу награду'

елсе
Избацио 'Жао ми је, покушајте следећи пут'
бити

Покрените датотеку помоћу команде басх.

$басхелсеиф_екампле.сх

Иди на врх

Користећи изјаву случаја:

Случај изјава се користи као алтернатива иф-елсеиф-елсе изјава. Почетни и завршни блок ове изјаве дефинисан је са „ случају ' и ' есац ’. Направите нову датотеку под називом „ цасе_екампле.сх “И додајте следеће писмо. Излаз следеће скрипте ће бити исти као и претходне иначе ако пример.

#!/бин/басх

Избацио „Унесите свој срећан број“
читатин
случају $ н у
101)
Избацио Избацио 'Добио си прву награду' ;;
510)
Избацио 'Добио си другу награду' ;;
999)
Избацио 'Добио си трећу награду' ;;
*)
Избацио 'Жао ми је, покушајте следећи пут' ;;
есац

Покрените датотеку помоћу команде басх.

$басхцасе_екампле.сх

Иди на врх

Преузмите аргументе из командне линије:

Басх скрипта може читати унос из аргумента командне линије као и други програмски језик. На пример, 1 УСД и 2 УСД се користе за читање првог и другог аргумента командне линије. Направите датотеку под називом цомманд_лине.сх и додајте следеће писмо. Две вредности аргумената које чита следећа скрипта и штампа укупан број аргумената и вредности аргумената као излаз.

#!/бин/басх
Избацио „Укупно аргумената: $#“
Избацио '1. аргумент = $ 1'
Избацио '2. аргумент = 2 УСД'

Покрените датотеку помоћу команде басх.

$басхцомманд_лине.сх Линук савет

Можете проверити следећу везу да бисте сазнали више о употреби аргумента командне линије.

хттпс://линукхинт.цом/цомманд_лине_аргументс_басх_сцрипт/

Иди на врх

Добијте аргументе из командне линије са именима:

Како можете читати аргументе командне линије са именима приказано је у следећој скрипти. Направите датотеку под називом „ цомманд_лине_намес.сх ’ и додајте следећи код. Ево два аргумента, Икс и И се читају по овој скрипти и штампају збир Кс и И.

#!/бин/басх
заљуту '[заштићена е -пошта]'
урадити
индекс= $(Избацио $ арг | исећи -ф1 =)
хрс= $(Избацио $ арг | исећи -ф2 =)
случају $ индек у
Икс) Икс=$ сати;;

И) и=$ сати;;

*)
есац
Готово
((резултат= к + и))
Избацио 'Кс + И =$ резултат'

Покрените датотеку помоћу команде басх и са два аргумента командне линије.

$басхцомманд_лине_намесИкс=Четири, пет И=30

Иди на врх

Комбинујте променљиве низа:

Лако можете комбиновати стринг променљиве у басх -у. Направите датотеку под називом стринг_цомбине.сх и додајте следећу скрипту да бисте проверили како можете комбиновати стринг променљиве у басх -у постављањем променљивих заједно или коришћењем '+' оператер.

#!/бин/басх

стринг1=„Линук“
стринг2='Наговестити'
Избацио '$ стринг1$ стринг2'
стринг3=$ стринг1+$ стринг2
стринг3+='је добар блог за туторијале'
Избацио $ стринг3

Покрените датотеку помоћу команде басх.

$басхстринг_цомбине.сх

Иди на врх

Набавите подниз стринга:

Као и други програмски језик, басх нема уграђену функцију за исецање вредности из било ког стринг података. Али можете извршити задатак поднизања на други начин у басх -у који је приказан у следећој скрипти. Да бисте тестирали скрипту, направите датотеку под називом „ субстринг_екампле.сх “Са следећим кодом. Овде је вредност, 6 означава почетну тачку одакле почиње подниз и 5 означава дужину подниз.

#!/бин/басх
Стр='Научите Линук од ЛинукХинт -а'
субСтр=$ {Стр: 6: 5}
Избацио $ субСтр

Покрените датотеку помоћу команде басх.

$басхсубстринг_екампле.сх

Иди на врх

Додајте два броја:

Аритметичке операције можете извршити у басху на различите начине. Како можете додати два целобројна броја у басх помоћу двоструких заграда приказано је у следећој скрипти. Направите датотеку под називом „ адд_нумберс.сх “Са следећим кодом. Две целобројне вредности ће бити преузете од корисника и одштампане резултат сабирања.

#!/бин/басх
Избацио „Унесите први број“
читатиИкс
Избацио „Унесите други број“
читатии
(( збир= к + и))
Избацио 'Резултат сабирања =$ сум'

Покрените датотеку помоћу команде басх.

$басхадд_нумберс.сх

Можете проверити следећу везу да бисте сазнали више о басх аритметици.

хттпс://линукхинт.цом/басх_аритхметиц_оператионс/

Иди на врх

Направи функцију:

Како можете креирати једноставну функцију и позвати је приказано у следећој скрипти. Направите датотеку под називом „ фунцтион_екампле.сх “И додајте следећи код. Можете позвати било коју функцију само именом без употребе заграда у басх скрипти.

#!/бин/басх
функцијаФ1()
{
Избацио 'Волим басх програмирање'
}

Ф1

Покрените датотеку помоћу команде басх.

$басхфунцтион_екампле.сх

Иди на врх

Креирајте функцију са параметрима:

Басх не може декларисати параметар функције или аргументе у време декларације функције. Али можете користити параметре у функцији користећи другу променљиву. Ако су две вредности прослеђене у време позивања функције, онда се променљива $ 1 и $ 2 користе за читање вредности. Направите датотеку под називом „ функција | _параметер.сх “И додајте следећи код. Овде је функција „ Рецтангле_Ареа ’ израчунаће површину правоугаоника на основу вредности параметара.

#!/бин/басх

Рецтангле_Ареа() {
области= $((1 УСД * 2 УСД))
Избацио 'Површина је:$ ареа'
}

Рецтангле_Ареа10 двадесет

Покрените датотеку помоћу команде басх.

$басхфунцтион_параметер.сх

Иди на врх

Вратите повратну вредност функције:

Басх функција може да пренесе и нумеричке и стринг вредности. Како можете пренети вредност низа из функције приказано је у следећем примеру. Направите датотеку под називом „ фунцтион_ретурн.сх “И додајте следећи код. Функција, Поздрав() враћа вредност низа у променљиву, хрс који се касније штампа комбиновањем са другим низом.

#!/бин/басх
функцијаПоздрав() {

п='Здраво,$ наме'
Избацио $ стр

}

Избацио 'Унесите своје име'
читатииме

хрс= $(Поздрав)
Избацио 'Повратна вредност функције је$ сати'

Покрените датотеку помоћу команде басх.

$басхфунцтион_ретурн.сх

Можете проверити следећу везу да бисте сазнали више о употреби басх функције.

хттпс://линукхинт.цом/ретурн-стринг-басх-фунцтионс/

Иди на врх

Направи именик:

Басх користи „ мкдир ’Наредба за креирање новог директоријума. Направите датотеку под називом „ маке_дирецтори.сх ’И додајте следећи код да бисте од корисника преузели ново име директоријума. Ако име директоријума не постоји на тренутној локацији, он ће креирати директоријум, у супротном ће програм приказати грешку.

#!/бин/басх
Избацио 'Унесите назив директоријума'
читатиневдир
``мкдир $ невдир``

Покрените датотеку помоћу команде басх.

$басхмаке_дирецтори.сх

Иди на врх

Направите директоријум тако што ћете проверити постојање:

Ако желите да проверите постојање директоријума на тренутној локацији пре него што извршите „ мкдир ’, Можете користити следећи код. ‘-Д ’Опција се користи за тестирање да ли одређени директоријум постоји или не. Направите датотеку под називом „ дирецтори_екист.сх ’ и додајте следећи код за креирање директоријума провером постојања.

#!/бин/басх
Избацио 'Унесите назив директоријума'
читатиндр
ако [ '$ ндир' ]
онда
Избацио 'Именик постоји'
елсе
``мкдир $ ндир``
Избацио 'Директоријум је креиран'
бити

Покрените датотеку помоћу команде басх.

$басхдирецтори_екист.сх

Можете проверити следећу везу да бисте сазнали више о креирању директоријума.

хттпс://линукхинт.цом/басх_мкдир_нот_екистент_патх/

Иди на врх

Прочитајте датотеку:

Можете читати било коју датотеку ред по ред у басху помоћу петље. Направите датотеку под називом „ реад_филе.сх “И додајте следећи код да бисте прочитали постојећу датотеку под називом,„ боок.ткт '.

#!/бин/басх
филе='боок.ткт'
док читатилине;урадити
Избацио $ линија
Готово < $ филе

Покрените датотеку помоћу команде басх.

$басхреад_филе.сх

Покрените следећу команду да бисте проверили оригинални садржај „ боок.ткт ’Датотеку.

$мачкабоок.ткт

Можете проверити следећу везу да бисте сазнали различите начине читања датотеке.

хттпс://линукхинт.цом/реад_филе_лине_би_лине_басх/

Иди на врх

Избришите датотеку:

' рм ’Команда се користи у басх за уклањање било које датотеке. Направите датотеку под називом „ делете_филе.сх ’Са следећим кодом да бисте преузели име датотеке од корисника и уклонили је. Овде, '-И' Ова опција се користи за добијање дозволе од корисника пре уклањања датотеке.

#!/бин/басх
Избацио 'Унесите назив датотеке за уклањање'
читатифн
рм $ фн

Покрените датотеку помоћу команде басх.

$лс
$басхделете_филе.сх
$лс

Иди на врх

Додај у датотеку:

Нови подаци се могу додати у било коју постојећу датотеку помоћу '>>' оператер у басх. Направите датотеку под називом ‘Аппенд_филе.сх ’И додајте следећи код да бисте додали нови садржај на крају датотеке. Овде, ‘ Учење Ларавела 5 'Ће бити додато у од' боок.ткт ' датотеку након извршавања скрипте.

#!/бин/басх

Избацио 'Пре додавања датотеке'
мачкабоок.ткт

Избацио „Учење Ларавела 5“>>боок.ткт
Избацио 'Након додавања датотеке'
мачкабоок.ткт

Покрените датотеку помоћу команде басх.

$басхаппенд_филе.сх

Иди на врх

Тестирајте да ли датотека постоји:

Можете проверити постојање датотеке у басх -у помоћу '-И' или '-Ф' опција. '-Ф' опција се користи у следећој скрипти за тестирање постојања датотеке. Направите датотеку под називом „ филе_екист.сх “И додајте следећи код. Овде ће назив датотеке проћи из командне линије.

#!/бин/басх
назив документа=1 УСД
ако [ '$ назив датотеке' ];онда
Избацио 'Датотека постоји'
елсе
Избацио 'Фајл не постоји'
бити

Покрените следеће команде да бисте проверили постојање датотеке. Овде, боок.ткт датотека постоји и боок2.ткт не постоји на тренутној локацији.

$лс
$басхфиле_екист.сх боок.ткт
$басхфиле_екист.сх боок2.ткт

Иди на врх

Шаљи имејл:

Е -пошту можете послати помоћу „ Пошта 'Или' Пошаљи пошту ’Команда. Пре коришћења ових команди морате инсталирати све потребне пакете. Направите датотеку под називом „ маил_екампле.сх “И додајте следећи код за слање е -поште.

#!/бин/басх
Прималац= админ@екампле.цом
Субјецт= Поздрав
Порука= Добродошли на нашу страницу
``Пошта $ Субјецт $ Реципиент <<< $ Мессаге``

Покрените датотеку помоћу команде басх.

$басхмаил_екампле.сх

Иди на врх

Добијте тренутни датум рашчлањивања:

Тренутну системску вредност датума и времена можете добити помоћу ` датум `команда. Сваки део вредности датума и времена може се рашчланити помоћу „ И ',' м ',' д ',' Х ',' М ' и ' С ’ . Направите нову датотеку под називом „ дате_парсе.сх ’ и додајте следећи код за одвајање вредности дана, месеца, године, сата, минута и секунде.

#!/бин/басх
Година=``датум+%И``
Месец дана=``датум+%м``
Дан=``датум+%д``
Сат=``датум+%Х.``
Минута=``датум+%М.``
Друго=``датум+%С``
Избацио ``датум``
Избацио 'Тренутни датум је:$ Даи-$ Месец-$ Година'
Избацио 'Тренутно време је:$ Сат:$ Минуте:$ Сецонд'

Покрените датотеку помоћу команде басх.

$басхдате_парсе.сх

Иди на врх

Команда чекања:

чекати је уграђена команда Линука која чека да заврши било који покренути процес. чекати команда се користи са одређеним ИД -ом процеса или ИД -ом посла. Ако ниједан ИД процеса или ИД посла нису дати наредбом ваит, онда ће чекати да се заврше сви тренутни подређени процеси и вратити статус излаза. Направите датотеку под називом „ ваит_екампле.сх ’ и додајте следеће писмо.

#!/бин/басх
Избацио „Команда чекања“ &
процесс_ид=$!
чекати $ процесс_ид
Избацио 'Изашао са статусом $?'

Покрените датотеку помоћу команде басх.

$басхваит_екампле.сх

Можете проверити следећу везу да бисте сазнали више о команди ваит.

Команда чекања у Линуку

Иди на врх

Команда за спавање:

Када желите да паузирате извршавање било које команде на одређени временски период, онда то можете користити спавај команда. Износ кашњења можете подесити са секунди (и), минута (м), сати (х) и дана (д). Направите датотеку под називом ‘Слееп_екампле.сх’ и додајте следеће писмо. Ова скрипта ће чекати 5 секунди након покретања.

#!/бин/басх

ИзбациоЧекатиза 5секунди
спавај 5
ИзбациоЦомплетед

Покрените датотеку помоћу команде басх.

$басхслееп_екампле.сх

Можете проверити следећу везу да бисте сазнали више о наредбама за спавање.

хттпс://линукхинт.цом/слееп_цомманд_линук/

Иди на врх

Надам се да сте након читања овог чланка стекли основни концепт о басх скриптном језику и да ћете их моћи применити на основу ваших захтева.