Bash скриптове могат да се използват за различни цели, като например изпълнение на команда на черупка, изпълнение на множество команди заедно, персонализиране на административни задачи, извършване на автоматизация на задачи и т.н. Така че познаването на основите на bash програмиране е важно за всеки потребител на Linux. Тази статия ще ви помогне да получите основната идея за програмирането на bash. Повечето от често срещаните операции на bash скриптове са обяснени с много прости примери тук.
Следните теми за програмиране на bash са обхванати в тази статия.
- Здравей свят
- Команда за ехо
- Коментари
- Многоредов коментар
- Докато Loop
- За цикъл
- Вземете потребителски вход
- Ако изявление
- И условие ако изявление
- Или Условие ако изявление
- Иначе условие ако и друго
- Състояние на случая
- Вземете аргументи от командния ред
- Вземете аргументи от командния ред с имена
- Комбинирайте два низа в променлива
- Вземете подниза от низове
- Добавете 2 числа към променлива
- Създайте функция
- Използвайте функционални параметри
- Предайте върната стойност от скрипта
- Направете директория
- Направете директория, като проверите съществуването
- Прочетете файл
- Изтриване на файл
- Добавяне към файла
- Тествайте дали файлът съществува
- Пример за изпращане на имейл
- Вземете синтактична текуща дата
- Команда за изчакване
- Команда за заспиване
Създайте и изпълнете първа програма BASH:
Можете да стартирате bash скрипт от терминала или като изпълните всеки bash файл. Изпълнете следната команда от терминала, за да изпълните много проста bash инструкция. Изходът на командата ще бъде „ Здравей свят '.
$изхвърлен 'Здравей свят'
Отворете всеки редактор, за да създадете bash файл. Тук, нано редакторът се използва за създаване на файла и името на файла е зададено като „ First.sh ’
$наноПърво.sh
Добавете следния bash скрипт към файла и запишете файла.
#!/bin/bashизхвърлен 'Здравей свят'
Можете да стартирате bash файл по два начина. Един от начините е чрез използване на команда bash, а друг е чрез задаване на разрешение за изпълнение за bash файл и стартиране на файла. Тук са показани и двата начина.
$башПърво.shИли,
$chmoda+x First.sh$./Първо.sh
Използване на командата echo:
Можете да използвате командата echo с различни опции. Някои полезни опции са споменати в следния пример. Когато използвате „ изхвърлен 'Команда без никаква опция, тогава по подразбиране се добавя нов ред. '-н' опцията се използва за отпечатване на всеки текст без нов ред и '-И' опцията се използва за премахване на обратната наклонена черта от изхода. Създайте нов bash файл с име „ echo_example.sh “И добавете следния скрипт.
#!/bin/bashизхвърлен „Отпечатване на текст с нов ред“
изхвърлен -н „Отпечатване на текст без нов ред“
изхвърлен -И 'нПремахванеTнаклонена чертаTперсонажин'
Стартирайте файла с командата bash.
$башecho_example.sh
Използване на коментар:
‘#’ символ се използва за добавяне на коментар на един ред в bash скрипт. Създайте нов файл с име „ comment_example.sh ’ и добавете следния скрипт с коментар на един ред.
#!/bin/bash# Добавете две числови стойности
((сума=25+35))
#Отпечатайте резултата
изхвърлен $ сума
Стартирайте файла с командата bash.
$башcomment_example.sh
Използване на многоредов коментар:
Можете да използвате многоредов коментар в bash по различни начини. Един прост начин е показан в следния пример. Създайте нов bash с име, „Multiline-comment.sh“ и добавете следния скрипт. Тук, ‘:’ и ' символите се използват за добавяне на многоредов коментар в bash скрипт. Този скрипт ще изчисли квадрата от 5.
#!/bin/bash:'
Следният скрипт изчислява
квадратната стойност на числото, 5.
'
((■ площ=5*5))
изхвърлен $ площ
Стартирайте файла с командата bash.
$башmultiline-comment.sh
Можете да проверите следната връзка, за да научите повече за използването на bash коментар.
https://linuxhint.com/bash_comments/
Използване на While Loop:
Създайте bash файл с името, ‘While_example.sh’, да знаете използването на докато цикъл. В примера, докато цикъл ще повтори за 5 пъти. Стойността на броя променливата ще се увеличи с 1 във всяка стъпка. Когато стойността на броя променливата ще 5, тогава докато цикълът ще се прекрати.
#!/bin/bashвалиден=вярно
броя=1
докато [ $ валидно ]
направете
изхвърлен $ count
ако [ $ count -екв 5 ];
тогава
прекъсване
бъда
((брой ++))
Свършен
Стартирайте файла с командата bash.
$башwhile_example.sh
Можете да проверите следната връзка, за да научите повече за използването на цикъл while.
https://linuxhint.com/bash- medtem-loop-examples/
Използване за цикъл:
Основното за декларацията на цикъл е показана в следния пример. Създайте файл с име „ for_example.sh “И добавете следния скрипт, като използвате за цикъл. Тук, за цикъл ще повтори за 10 пъти и отпечата всички стойности на променливата, брояч в един ред.
#!/bin/bashза (( брояч=10; брояч>0; брояч-))
направете
изхвърлен -н '$ брояч'
Свършен
printf 'н'
Стартирайте файла с командата bash.
$башfor_example.sh
Можете да използвате for loop за различни цели и начини във вашия bash скрипт. Можете да проверите следната връзка, за да научите повече за използването на for цикъл.
https://linuxhint.com/bash-for-loop-examples/
Вземете потребителски вход:
' Прочети 'Командата се използва за получаване на въвеждане от потребителя в bash. Създайте файл с име „ user_input.sh “И добавете следния скрипт за получаване на информация от потребителя. Тук една стойност на низ ще бъде взета от потребителя и ще покаже стойността чрез комбиниране на друга стойност на низ.
#!/bin/bashизхвърлен 'Въведете вашето име'
Прочетииме
изхвърлен 'Добре дошли$ nameкъм LinuxHint '
Стартирайте файла с командата bash.
$башuser_input.sh
Можете да проверите следната връзка, за да научите повече за използването на потребителски вход.
https://linuxhint.com/bash-script-user-input/
Използвайки оператора if:
Можете да използвате ако условие с единични или множество условия. Началният и крайният блок на това изявление се определя от „Ако“ и 'бъда' . Създайте файл с име „ simple_if.sh “Със следния скрипт, за да знаете употребата ако изявление на bash. Тук, 10 се присвоява на променливата, н . ако стойността на $ n е по -малко от 10, тогава изходът ще бъде Това е едноцифрено число , в противен случай изходът ще бъде Това е двуцифрено число . За сравнение, „-Lt“ се използва тук. За сравнение можете също да използвате „-Eq“ за равенство , '-роден' за не равенство и '-Gt' за по-голяма от в bash скрипт.
#!/bin/bashн=10
ако [ $ n -лт 10 ];
тогава
изхвърлен „Това е едноцифрено число“
иначе
изхвърлен „Това е двуцифрено число“
бъда
Стартирайте файла с командата bash.
$башsimple_if.sh
Използване на оператора if с логиката AND:
Различни видове логически условия могат да се използват в оператор if с две или повече условия. Как можете да дефинирате множество условия в използването на израза if И логиката е показана в следния пример. '&&' се използва за кандидатстване И логика на ако изявление. Създайте файл с име „If_with_AND.sh“ за да проверите следния код. Тук стойността на потребителско име и парола променливите ще бъдат взети от потребителя и сравнени с „ администратор ' и ' тайна “. Ако и двете стойности съвпадат, изходът ще бъде валиден потребител , в противен случай изходът ще бъде невалиден потребител .
! /съм/башизхвърлен „Въведете потребителско име“
Прочетипотребителско име
изхвърлен 'Въведете паролата'
Прочетипарола
ако [[ ( $ потребителско име=='администратор' && $ парола=='тайна' ) ]];тогава
изхвърлен „валиден потребител“
иначе
изхвърлен „невалиден потребител“
бъда
Стартирайте файла с командата bash.
$башif_with_AND.sh
Използване на оператора if с логика OR:
' || “Се използва за дефиниране ИЛИ логика в ако състояние. Създайте файл с име „If_with_OR.sh“ със следния код, за да проверите използването на ИЛИ логика на ако изявление. Тук стойността на н ще бъдат взети от потребителя. Ако стойността е равна на петнадесет или Четири пет тогава изходът ще бъде Спечелихте играта , в противен случай изходът ще бъде Загубихте играта .
#!/bin/bashизхвърлен „Въведете произволен номер“
Прочетин
ако [[ ( $ n -екв петнадесет || $ n -екв Четири пет ) ]]
тогава
изхвърлен „Спечелихте играта“
иначе
изхвърлен „Загубихте играта“
бъда
Стартирайте файла с командата bash.
$башif_with_OR.sh
Използване на оператор else if:
Използването на иначе ако условието е малко по -различно в bash от други езици за програмиране. ‘ elif “Се използва за дефиниране иначе ако състояние в bash. Създайте файл с име „ elseif_example.sh “И добавете следния скрипт, за да проверите как иначе ако е дефиниран в bash скрипт.
#!/bin/bashизхвърлен „Въведете щастливия си номер“
Прочетин
ако [ $ n -екв 101 ];
тогава
изхвърлен „Имаш първа награда“
elif [ $ n -екв 510 ];
тогава
изхвърлен „Имаш втора награда“
elif [ $ n -екв 999 ];
тогава
изхвърлен „Имаш трета награда“
иначе
изхвърлен „Извинете, опитайте следващия път“
бъда
Стартирайте файла с командата bash.
$башelseif_example.sh
Използване на изявление на случая:
Дело изявлението се използва като алтернатива на if-elseif-else изявление. Началният и крайният блок на това изявление се определя от „ случай ' и ' esac “. Създайте нов файл с име „ case_example.sh “И добавете следния скрипт. Резултатът от следния скрипт ще бъде същият като предишния иначе ако пример.
#!/bin/bashизхвърлен „Въведете щастливия си номер“
Прочетин
случай $ n в
101)
изхвърлен изхвърлен „Имаш първа награда“ ;;
510)
изхвърлен „Имаш втора награда“ ;;
999)
изхвърлен „Имаш трета награда“ ;;
*)
изхвърлен „Извинете, опитайте следващия път“ ;;
esac
Стартирайте файла с командата bash.
$башcase_example.sh
Вземете аргументи от командния ред:
Баш скриптът може да чете въвеждане от аргумента на командния ред, подобно на друг език за програмиране. Например, $ 1 и $ 2 променливата се използва за четене на първи и втори аргументи на командния ред. Създайте файл с име command_line.sh и добавете следния скрипт. Две стойности на аргументи, прочетени от следния скрипт и отпечатват общия брой аргументи и стойностите на аргумента като изход.
#!/bin/bashизхвърлен „Общо аргументи: $#“
изхвърлен „Първи аргумент = $ 1“
изхвърлен '2 -ри аргумент = $ 2'
Стартирайте файла с командата bash.
$башcommand_line.sh Linux Съвет
Можете да проверите следната връзка, за да научите повече за използването на аргумента на командния ред.
https://linuxhint.com/command_line_arguments_bash_script/
Вземете аргументи от командния ред с имена:
Как можете да прочетете аргументите на командния ред с имена е показано в следния скрипт. Създайте файл с име „ command_line_names.sh ’ и добавете следния код. Ето два аргумента, х и И се четат от този скрипт и отпечатват сумата от X и Y.
#!/bin/bashзаядосанв '[защитен имейл]'
направете
индекс= $(изхвърлен $ arg | разрез -f1 -д=)
час= $(изхвърлен $ arg | разрез -f2 -д=)
случай $ индекс в
х) х=$ часове;;
И) и=$ часове;;
*)
esac
Свършен
((резултат= x + y))
изхвърлен 'X + Y =$ резултат'
Стартирайте файла с команда bash и с два аргумента от командния ред.
$башимена на_командни_редовех=Четири пет И=30
Комбинирайте низови променливи:
Можете лесно да комбинирате низови променливи в bash. Създайте файл с име string_combine.sh и добавете следния скрипт, за да проверите как можете да комбинирате низови променливи в bash, като поставите променливи заедно или използвате '+' оператор.
#!/bin/bashниз1='Linux'
низ2=„Съвет“
изхвърлен '$ string1$ string2'
низ3=$ string1+$ string2
низ3+=„е добър сайт за уроци в блога“
изхвърлен $ string3
Стартирайте файла с командата bash.
$башstring_combine.sh
Вземете подниза на низ:
Подобно на друг език за програмиране, bash няма вградена функция за изрязване на стойност от произволни низови данни. Но можете да направите задачата за подниза по друг начин в bash, който е показан в следния скрипт. За да тествате скрипта, създайте файл с име ‘ substring_example.sh “Със следния код. Тук стойността, 6 показва началната точка, от която ще започне подниза и 5 показва дължината на подниза.
#!/bin/bashУл=„Научете Linux от LinuxHint“
subStr=$ {Str: 6: 5}
изхвърлен $ subStr
Стартирайте файла с командата bash.
$башsubstring_example.sh
Добавете две числа:
Можете да правите аритметичните операции в bash по различни начини. Как можете да добавите две цели числа в bash с помощта на двойни скоби е показано в следния скрипт. Създайте файл с име „ add_numbers.sh “Със следния код. Две цели числа ще бъдат взети от потребителя и ще бъдат отпечатани резултатът от добавянето.
#!/bin/bashизхвърлен „Въведете първо число“
Прочетих
изхвърлен „Въведете втори номер“
Прочетии
(( сума= x + y))
изхвърлен 'Резултатът от добавянето =$ сума'
Стартирайте файла с командата bash.
$башadd_numbers.sh
Можете да проверите следната връзка, за да научите повече за bash аритметиката.
https://linuxhint.com/bash_arithmetic_operations/
Създаване на функция:
Как можете да създадете проста функция и да я извикате е показано в следния скрипт. Създайте файл с име „ function_example.sh “И добавете следния код. Можете да извикате всяка функция само по име, без да използвате скоба в bash скрипт.
#!/bin/bashфункцияF1()
{
изхвърлен „Харесва ми bash програмиране“
}
F1
Стартирайте файла с командата bash.
$башfunction_example.sh
Създайте функция с параметри:
Bash не може да декларира параметър на функция или аргументи по време на деклариране на функция. Но можете да използвате параметри във функция, като използвате друга променлива. Ако по време на извикване на функция се предадат две стойности, тогава променливите $ 1 и $ 2 се използват за четене на стойностите. Създайте файл с име „ функция | _parameter.sh “И добавете следния код. Тук функцията „ Rectangle_Area ' ще изчисли площта на правоъгълник въз основа на стойностите на параметъра.
#!/bin/bashRectangle_Area() {
■ площ= $(($ 1 * $ 2))
изхвърлен 'Площта е:$ площ'
}
Rectangle_Area10 двайсет
Стартирайте файла с командата bash.
$башfunction_parameter.sh
Предайте възвращаема стойност от функцията:
Баш функцията може да предава както числови, така и низови стойности. Как можете да предадете низова стойност от функцията е показано в следния пример. Създайте файл с име „ function_return.sh “И добавете следния код. Функцията, поздрав() връща стойност на низ в променливата, час който се отпечатва по -късно чрез комбиниране с друг низ.
#!/bin/bashфункцияпоздрав() {
стр='Здравейте,$ name'
изхвърлен $ str
}
изхвърлен 'Въведете вашето име'
Прочетииме
час= $(поздрав)
изхвърлен 'Връщаната стойност на функцията е$ часове'
Стартирайте файла с командата bash.
$башfunction_return.sh
Можете да проверите следната връзка, за да научите повече за използването на функцията bash.
https://linuxhint.com/return-string-bash-functions/
Направете директория:
Bash използва „ mkdir 'Команда за създаване на нова директория. Създайте файл с име „ make_directory.sh “И добавете следния код, за да вземете ново име на директория от потребителя. Ако името на директорията не съществува в текущото местоположение, тя ще създаде директорията, в противен случай програмата ще покаже грешка.
#!/bin/bashизхвърлен „Въведете име на директория“
Прочетиnewdir
„mkdir $ newdir„
Стартирайте файла с командата bash.
$башmake_directory.sh
Направете директория, като проверите съществуването:
Ако искате да проверите съществуването на директория в текущото местоположение, преди да изпълните „ mkdir “, Тогава можете да използвате следния код. '-д Опцията се използва за тестване на конкретна директория дали съществува или не. Създайте файл с име „ directory_exist.sh ’ и добавете следния код, за да създадете директория, като проверите съществуването.
#!/bin/bashизхвърлен „Въведете име на директория“
Прочетиndr
ако [ -д '$ ndir' ]
тогава
изхвърлен 'Директория съществува'
иначе
„mkdir $ ndir„
изхвърлен „Директория е създадена“
бъда
Стартирайте файла с командата bash.
$башdirectory_exist.sh
Можете да проверите следната връзка, за да научите повече за създаването на директория.
https://linuxhint.com/bash_mkdir_not_existent_path/
Прочетете файл:
Можете да четете всеки файл ред по ред в bash, като използвате цикъл. Създайте файл с име „ read_file.sh “И добавете следния код, за да прочетете съществуващ файл с име„ book.txt '.
#!/bin/bashфайл='book.txt'
докато Прочетилиния;направете
изхвърлен $ ред
Свършен < $ файл
Стартирайте файла с командата bash.
$башread_file.shИзпълнете следната команда, за да проверите оригиналното съдържание на „ book.txt ’Файл.
$коткаbook.txt
Можете да проверите следната връзка, за да знаете различните начини за четене на файл.
https://linuxhint.com/read_file_line_by_line_bash/
Изтриване на файл:
' rm 'Командата се използва в bash за премахване на всеки файл. Създайте файл с име „ delete_file.sh “Със следния код, за да вземете името на файла от потребителя и да го премахнете. Тук, '-I' опцията се използва за получаване на разрешение от потребителя преди премахване на файла.
#!/bin/bashизхвърлен „Въведете име на файл, за да премахнете“
Прочетиfn
rm -и $ fn
Стартирайте файла с командата bash.
$ls$башdelete_file.sh
$ls
Добавяне към файл:
Нови данни могат да се добавят във всеки съществуващ файл, като се използва '>>' оператор в bash. Създайте файл с име ‘Append_file.sh “И добавете следния код, за да добавите ново съдържание в края на файла. Тук, ' Учене на Laravel 5 'Ще бъде добавено в' от book.txt ' файл след изпълнение на скрипта.
#!/bin/bashизхвърлен „Преди да добавите файла“
коткаbook.txt
изхвърлен „Learning Laravel 5“>>book.txt
изхвърлен „След добавяне на файла“
коткаbook.txt
Стартирайте файла с командата bash.
$башappend_file.sh
Тествайте дали файлът съществува:
Можете да проверите съществуването на файл в bash, като използвате '-И' или '-F' опция. '-F' option се използва в следния скрипт за тестване на съществуването на файла. Създайте файл с име „ file_exist.sh “И добавете следния код. Тук името на файла ще премине от командния ред.
#!/bin/bashиме на файл=$ 1
ако [ -f '$ име на файл' ];тогава
изхвърлен 'Файлът съществува'
иначе
изхвърлен 'Файлът не съществува'
бъда
Изпълнете следните команди, за да проверите съществуването на файла. Тук, book.txt файлът съществува и book2.txt не съществува на текущото място.
$ls$башfile_exist.sh book.txt
$башfile_exist.sh book2.txt
Изпратете имейл:
Можете да изпращате имейл, като използвате „ поща ' или ' изпрати писмо 'Команда. Преди да използвате тези команди, трябва да инсталирате всички необходими пакети. Създайте файл с име „ mail_example.sh “И добавете следния код, за да изпратите имейла.
#!/bin/bashПолучател= администратор@example.com
Предмет= Поздрав
Съобщение= Добре дошли на нашия сайт
„поща-с $ Subject $ Получател <<< $ Съобщение„
Стартирайте файла с командата bash.
$башmail_example.sh
Вземете текущата дата на синтактичен анализ:
Можете да получите текущата системна дата и час с помощта на ` дата `команда. Всяка част от стойността на датата и часа може да бъде анализирана с помощта на „ Y ',' m ',' d ',' H ',' M ' и ' С' . Създайте нов файл с име „ date_parse.sh ’ и добавете следния код за разделяне на ден, месец, година, час, минута и втора стойност.
#!/bin/bashГодина=„дата+%И„
Месец=„дата+%м„
Ден=„дата+%д„
Час=„дата+%З„
Минута=„дата+%М„
Второ=„дата+%С„
изхвърлен „дата„
изхвърлен „Текущата дата е:$ Ден-$ Месец-$ Година'
изхвърлен „Текущото време е:$ Час:$ Минута:$ Второ'
Стартирайте файла с командата bash.
$башdate_parse.sh
Команда за изчакване:
изчакайте е вградена команда на Linux, която чака да завърши всеки изпълнен процес. изчакайте команда се използва с определен идентификатор на процес или идентификатор на работа. Ако не е даден идентификатор на процес или идентификатор на работа с команда за изчакване, той ще изчака всички текущи дъщерни процеси да завършат и ще върне състоянието на излизане. Създайте файл с име „ wait_example.sh ’ и добавете следния скрипт.
#!/bin/bashизхвърлен „Команда за изчакване“ &
process_id=$!
изчакайте $ process_id
изхвърлен „Излязъл със статус $?“
Стартирайте файла с командата bash.
$башwait_example.sh
Можете да проверите следната връзка, за да научите повече за командата чакане.
Команда за заспиване:
Когато искате да спрете изпълнението на която и да е команда за определен период от време, можете да използвате сън команда. Можете да зададете размера на забавянето чрез секунди (и), минути (м), часове (ч) и дни (г). Създайте файл с име „Sleep_example.sh“ и добавете следния скрипт. Този скрипт ще изчака 5 секунди след стартиране.
#!/bin/bashизхвърленизчакайтеза 5секунди
сън 5
изхвърленЗавършен
Стартирайте файла с командата bash.
$башsleep_example.sh
Можете да проверите следната връзка, за да научите повече за командата за заспиване.
https://linuxhint.com/sleep_command_linux/
Надявам се, че след като прочетете тази статия, имате основна концепция за bash скриптовия език и ще можете да ги приложите въз основа на вашите изисквания.