Променливите са съществената част от програмирането или можем да кажем, че те са духът на езика за програмиране. Променливите указват местоположението на паметта чрез знаци, цифри и букви. Те се използват за препращане и манипулиране в компютърна програма.
Какви са променливите?
Променливите са контейнери, които съхраняват данни или полезна част от информацията като стойност вътре в тях. По-долу е синтаксисът за променлива:
Variable_name =value
Променливата е комбинирана форма от две думи, т.е. vary + able, което означава, че нейната стойност може да се променя и може да се използва многократно.
формула на масон
Променливата е известна като временно хранилище за всякакъв вид данни като цяло число, float, char и т.н. Името на променлива може да включва азбуки, цифри и долна черта , а името му може да започва само с букви и долна черта.
Забележка: Не можем да дефинираме име на променлива, започващо с която и да е цифра.
Какво представляват Bash променливите?
Не можем да използваме bash променливи, без да имаме правилната информация ( синтаксис, типове данни, типове, работа ) за това, така че нека да разгледаме този кратък урок, за да имаме подходящ преглед на Bash променливите.
Първо, запознайте се със синтаксиса.
Синтаксис:
Variable_name=value
Набор от правила за дефиниране на Bash променливи:
- Поставете пред името на променливата знака за долар ($), докато четете или отпечатвате променлива.
- Изключете знака за долар ($), докато задавате променлива с произволна стойност.
- Името на променлива може да бъде буквено-цифрово или може да бъде написано с долна черта (_).
- Името на променлива е чувствително към малки и големи букви: x и X се считат за две различни променливи.
- Името на променливата може да бъде написано с UPPER_CASE или LOWER_CASE букви или комбинация от двете, както желаете.
- Променлива може да бъде поставена навсякъде в Bash скрипт или в командния ред, тъй като по време на изпълнение Bash ще я замени с присвоената й стойност. Това стана възможно поради извършването на заместване преди изпълнение на командата.
- Не трябва да има интервал от двете страни на знака за равенство (=) между името на променливата и нейната стойност. Следват някои примери за Невалидни променливи с бели интервали (обозначени с точки ...) между тях, както е дадено по-долу:
променлива1=...променлива1
променлива2...=променлива2
променлива3...=...променлива3 - Няма нужда от използване на кавички, единични или двойни, за дефиниране на променлива със стойност от един символ, като например var1=променлива . За да въведете няколко думи или низ като един елемент в променлива, тогава използвайте кавички, за да затворите съдържанието си в тази променлива.
- Единични кавички ('') помагат за третирането на всеки символ.
- Двойните кавички ('') помагат да се направи заместването.
Типове данни
Във формалните езици за програмиране трябва да дефинирате типа данни на всяка променлива по време на декларирането на променливата. Например:
int year=2012 char comp_name='jtp'
Но в случай на Bash, не е нужно да дефинирате типа данни на която и да е променлива по време на декларирането на променливата. Bash променливите са нетипизиран , което означава, че просто въведете името на променливата, като присвоите нейната стойност, и тя автоматично ще вземе предвид този тип данни.
Така че, ако присвоите някаква числова стойност на променливата, тя ще работи като цяло число и ако присвоите символна стойност на променливата, тогава тя ще бъде String.
year=2012 comp_name=jtp
използвайки командата echo, прочетете ги, като присвоите знак $ преди името им, като напр
ехо $година
echo $name
Типове Bash променливи
Има два типа променливи в една обвивка или всяка UNIX система.
- Дефинирани от системата променливи
- Дефинирани от потребителя променливи
1. Дефинирани от системата променливи: Това са предварително дефинираните променливи, тъй като те се създават и поддържат от самата операционна система LINUX. Тяхната стандартна конвенция е, че обикновено те се дефинират с главни букви, т.е. UPPER_CASE. Така че винаги, когато видите променлива, дефинирана в главни букви, най-вероятно това са системно дефинираните променливи.
Това са следните дефинирани от системата променливи, както е дадено по-долу:
1. БАШ представлява името на Shell.
Пример:
BASH=/usr/bin/bash
2. BASH_VERSION указва версията на обвивката, която Bash поддържа.
Пример:
BASH_VERSION=4.2.46(2)
3. КОЛОНИ посочете бр. от колони за нашия екран.
Пример:
COLUMNS=80
4. ДОМ указва началната директория за потребителя.
Пример:
HOME=/home/jatpoint
5. LOGNAME указва потребителското име за регистриране.
Пример:
LOGNAME=javatpoint
6. OSTYPE казва вида на ОС.
Пример:
OSTYPE=linux-gnu
7. Увреждания представлява текущата работна директория.
Пример:
PWD=/home/javatpoint
8. ПОТРЕБИТЕЛСКО ИМЕ указва името на влезлия в момента потребител.
Пример:
USERNAME=javatpoint
За да знаете списъка с тези променливи във вашата система, въведете командите комплект, окр , и printenv на терминала на командния ред, както следва:
1. Въвеждане на комплект команда.
Изход:
2. Въвеждане на околна среда команда
Изход:
3. Въведете командата printenv
Изход:
Нека извикаме тези променливи чрез Bash Shell. Следват дадените стъпки:
Етап 1: Създайте скрипт, наречен от Bash_sdvar, и въведете следния код в Bash Console, както следва:
#! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS
Стъпка 2. Вижте конзолата Bash, дадена по-долу:
Стъпка 3. Запазете и изпълнете скрипта. Той ще покаже изхода, както можете да видите на фигурата по-долу.
Изход:
2. Дефинирани от потребителя променливи: Тези променливи се създават и поддържат от потребителя. Обикновено тези типове променливи са дефинирани в LOWER_CASES. Няма стриктно правило тези променливи да се записват с малки букви. Можем да ги пишем и с главни букви.
Нека създадем Bash скрипт, за да дефинираме тези променливи. Следвайте посочените по-долу стъпки:
Етап 1. Създайте скрипт, наречен от bash_yard и въведете следния код на Bash Console:
#! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.'
Стъпка 2. Вижте кода на Bash Console.
Стъпка 3. Запазете и изпълнете скрипта.
Изход:
Работа с Bash променливи
След като направихме основна демонстрация на променливите, нека преминем към това как работят?
Има две действия, които обикновено извършваме за променлива в Bash, както е дадено по-долу:
- задаване на стойност за променлива
- четене на стойността за него.
Стойността на променлива може да бъде зададена по различни начини, като най-често срещаният начин е да се зададе директно стойността. За да прочетем променлива, можем да поставим нейното име (префикс със знак $) навсякъде в скрипта.
Bash първо проверява всички имена на променливи, сякаш присъстват в скрипта. След това интерпретира всеки ред от нашия скрипт. След като идентифицира всяка променлива, тя замества името на променлива с присвоената й стойност. В края на краищата, той интерпретира/изпълнява този ред от код и продължава този процес за всеки кодиран ред от нашия скрипт.
ЗАБЕЛЕЖКА: И двата вида променливи в Bash (които обсъдихме) работят на терминала, както и на Bash скрипта. Нека видим как работят върху терминала и Bash чрез ясен пример:
Пример: Обадете се на потребителско име по XYZ, неговото местоположение, на което работи в момента, и версията на Bash Shell, която използва за Bash Scripting.
1. Работа на терминал
2. Работа върху Bash Shell
Вижте скрипта, наречен от Bash_Var, даден по-долу:
В 3rdлиния на скрипта , декларирахме променлива USER_NAME за съхраняване на потребителското име XYZ като негова стойност.
В последните два реда , отпечатахме желаното съобщение с помощта на ехо команда.
В това съобщение има две променливи и една команда. Всеки един от тях е предшестван от знака за долар ($), където:
За по-добро разбиране създайте този скрипт, като следвате дадения код:
#! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION.
Той ще покаже резултата, както можете да видите на следното изображение:
Изход:
Има още няколко примера за практикуване на променливи както на терминал, така и на Bash Shell. Като следвате набор от правила (обсъдени по-рано) имат практика върху променливите, както следва:
A. Използване на терминал на командния ред
1. Задаване на променливите
2. Четене и рефериране на променливите
3. Невалидни променливи
4. Комбиниране на две низови променливи
5. Конкатениране на низове с променливи
ЗАБЕЛЕЖКА: Не използвайте единични кавички за комбиниране на две променливи, както и за конкатенация на низове с променливи. Така че, ако свържете низове, като ги затворите в единични кавички, тогава ще бъде грешка да ги прочетете, както можете да видите на изображението, дадено по-долу:
B. Използване на Bash скрипт:
Това е пример за комбиниране на променливите String.
Изход:
Аргументи на командния ред
Аргументите на командния ред се използват, за да направят скрипта по-динамичен чрез предаване на входни данни към кода. Предаваме тези аргументи по време на изпълнение на скрипта като следната форма:
./script_name arg1 arg2 arg3.....
Не трябва да има интервал между името на скрипта и всички преминаващи аргументи.
Как да използвам аргументите на командния ред?
В Bash Shell те се използват с препратка към следните параметри по подразбиране или специални променливи.
- Поставете пред името на променливата знака за долар ($), докато четете или отпечатвате променлива.
- Изключете знака за долар ($), докато задавате променлива с произволна стойност.
- Името на променлива може да бъде буквено-цифрово или може да бъде написано с долна черта (_).
- Името на променлива е чувствително към малки и големи букви: x и X се считат за две различни променливи.
- Името на променливата може да бъде написано с UPPER_CASE или LOWER_CASE букви или комбинация от двете, както желаете.
- Променлива може да бъде поставена навсякъде в Bash скрипт или в командния ред, тъй като по време на изпълнение Bash ще я замени с присвоената й стойност. Това стана възможно поради извършването на заместване преди изпълнение на командата.
- Не трябва да има интервал от двете страни на знака за равенство (=) между името на променливата и нейната стойност. Следват някои примери за Невалидни променливи с бели интервали (обозначени с точки ...) между тях, както е дадено по-долу:
променлива1=...променлива1
променлива2...=променлива2
променлива3...=...променлива3 - Няма нужда от използване на кавички, единични или двойни, за дефиниране на променлива със стойност от един символ, като например var1=променлива . За да въведете няколко думи или низ като един елемент в променлива, тогава използвайте кавички, за да затворите съдържанието си в тази променлива.
- Единични кавички ('') помагат за третирането на всеки символ.
- Двойните кавички ('') помагат да се направи заместването.
- Дефинирани от системата променливи
- Дефинирани от потребителя променливи
- задаване на стойност за променлива
- четене на стойността за него.
Променливите са съществената част от програмирането или можем да кажем, че те са духът на езика за програмиране. Променливите указват местоположението на паметта чрез знаци, цифри и букви. Те се използват за препращане и манипулиране в компютърна програма.
Какви са променливите?
Променливите са контейнери, които съхраняват данни или полезна част от информацията като стойност вътре в тях. По-долу е синтаксисът за променлива:
Variable_name =value
Променливата е комбинирана форма от две думи, т.е. vary + able, което означава, че нейната стойност може да се променя и може да се използва многократно.
Променливата е известна като временно хранилище за всякакъв вид данни като цяло число, float, char и т.н. Името на променлива може да включва азбуки, цифри и долна черта , а името му може да започва само с букви и долна черта.
Забележка: Не можем да дефинираме име на променлива, започващо с която и да е цифра.
Какво представляват Bash променливите?
Не можем да използваме bash променливи, без да имаме правилната информация ( синтаксис, типове данни, типове, работа ) за това, така че нека да разгледаме този кратък урок, за да имаме подходящ преглед на Bash променливите.
Първо, запознайте се със синтаксиса.
Синтаксис:
Variable_name=value
Набор от правила за дефиниране на Bash променливи:
Типове данни
Във формалните езици за програмиране трябва да дефинирате типа данни на всяка променлива по време на декларирането на променливата. Например:
int year=2012 char comp_name='jtp'
Но в случай на Bash, не е нужно да дефинирате типа данни на която и да е променлива по време на декларирането на променливата. Bash променливите са нетипизиран , което означава, че просто въведете името на променливата, като присвоите нейната стойност, и тя автоматично ще вземе предвид този тип данни.
Така че, ако присвоите някаква числова стойност на променливата, тя ще работи като цяло число и ако присвоите символна стойност на променливата, тогава тя ще бъде String.
year=2012 comp_name=jtp
използвайки командата echo, прочетете ги, като присвоите знак $ преди името им, като напр
ехо $година
echo $name
Типове Bash променливи
Има два типа променливи в една обвивка или всяка UNIX система.
1. Дефинирани от системата променливи: Това са предварително дефинираните променливи, тъй като те се създават и поддържат от самата операционна система LINUX. Тяхната стандартна конвенция е, че обикновено те се дефинират с главни букви, т.е. UPPER_CASE. Така че винаги, когато видите променлива, дефинирана в главни букви, най-вероятно това са системно дефинираните променливи.
Това са следните дефинирани от системата променливи, както е дадено по-долу:
1. БАШ представлява името на Shell.
Пример:
BASH=/usr/bin/bash
2. BASH_VERSION указва версията на обвивката, която Bash поддържа.
Пример:
BASH_VERSION=4.2.46(2)
3. КОЛОНИ посочете бр. от колони за нашия екран.
Пример:
COLUMNS=80
4. ДОМ указва началната директория за потребителя.
Пример:
HOME=/home/jatpoint
5. LOGNAME указва потребителското име за регистриране.
Пример:
LOGNAME=javatpoint
6. OSTYPE казва вида на ОС.
Пример:
OSTYPE=linux-gnu
7. Увреждания представлява текущата работна директория.
Пример:
PWD=/home/javatpoint
8. ПОТРЕБИТЕЛСКО ИМЕ указва името на влезлия в момента потребител.
Пример:
USERNAME=javatpoint
За да знаете списъка с тези променливи във вашата система, въведете командите комплект, окр , и printenv на терминала на командния ред, както следва:
1. Въвеждане на комплект команда.
Изход:
2. Въвеждане на околна среда команда
Изход:
3. Въведете командата printenv
Изход:
Нека извикаме тези променливи чрез Bash Shell. Следват дадените стъпки:
Етап 1: Създайте скрипт, наречен от Bash_sdvar, и въведете следния код в Bash Console, както следва:
#! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS
Стъпка 2. Вижте конзолата Bash, дадена по-долу:
Стъпка 3. Запазете и изпълнете скрипта. Той ще покаже изхода, както можете да видите на фигурата по-долу.
Изход:
2. Дефинирани от потребителя променливи: Тези променливи се създават и поддържат от потребителя. Обикновено тези типове променливи са дефинирани в LOWER_CASES. Няма стриктно правило тези променливи да се записват с малки букви. Можем да ги пишем и с главни букви.
Нека създадем Bash скрипт, за да дефинираме тези променливи. Следвайте посочените по-долу стъпки:
Етап 1. Създайте скрипт, наречен от bash_yard и въведете следния код на Bash Console:
#! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.'
Стъпка 2. Вижте кода на Bash Console.
Стъпка 3. Запазете и изпълнете скрипта.
Изход:
Работа с Bash променливи
След като направихме основна демонстрация на променливите, нека преминем към това как работят?
Има две действия, които обикновено извършваме за променлива в Bash, както е дадено по-долу:
Стойността на променлива може да бъде зададена по различни начини, като най-често срещаният начин е да се зададе директно стойността. За да прочетем променлива, можем да поставим нейното име (префикс със знак $) навсякъде в скрипта.
Bash първо проверява всички имена на променливи, сякаш присъстват в скрипта. След това интерпретира всеки ред от нашия скрипт. След като идентифицира всяка променлива, тя замества името на променлива с присвоената й стойност. В края на краищата, той интерпретира/изпълнява този ред от код и продължава този процес за всеки кодиран ред от нашия скрипт.
ЗАБЕЛЕЖКА: И двата вида променливи в Bash (които обсъдихме) работят на терминала, както и на Bash скрипта. Нека видим как работят върху терминала и Bash чрез ясен пример:
Пример: Обадете се на потребителско име по XYZ, неговото местоположение, на което работи в момента, и версията на Bash Shell, която използва за Bash Scripting.
1. Работа на терминал
2. Работа върху Bash Shell
Вижте скрипта, наречен от Bash_Var, даден по-долу:
В 3rdлиния на скрипта , декларирахме променлива USER_NAME за съхраняване на потребителското име XYZ като негова стойност.
В последните два реда , отпечатахме желаното съобщение с помощта на ехо команда.
В това съобщение има две променливи и една команда. Всеки един от тях е предшестван от знака за долар ($), където:
За по-добро разбиране създайте този скрипт, като следвате дадения код:
#! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION.
Той ще покаже резултата, както можете да видите на следното изображение:
Изход:
Има още няколко примера за практикуване на променливи както на терминал, така и на Bash Shell. Като следвате набор от правила (обсъдени по-рано) имат практика върху променливите, както следва:
A. Използване на терминал на командния ред
1. Задаване на променливите
2. Четене и рефериране на променливите
3. Невалидни променливи
4. Комбиниране на две низови променливи
5. Конкатениране на низове с променливи
ЗАБЕЛЕЖКА: Не използвайте единични кавички за комбиниране на две променливи, както и за конкатенация на низове с променливи. Така че, ако свържете низове, като ги затворите в единични кавички, тогава ще бъде грешка да ги прочетете, както можете да видите на изображението, дадено по-долу:
B. Използване на Bash скрипт:
Това е пример за комбиниране на променливите String.
Изход:
Аргументи на командния ред
Аргументите на командния ред се използват, за да направят скрипта по-динамичен чрез предаване на входни данни към кода. Предаваме тези аргументи по време на изпълнение на скрипта като следната форма:
./script_name arg1 arg2 arg3.....
Не трябва да има интервал между името на скрипта и всички преминаващи аргументи.
Как да използвам аргументите на командния ред?
В Bash Shell те се използват с препратка към следните параметри по подразбиране или специални променливи.
Следват двата метода, които използваме за предаване на аргументи от командния ред:
Метод 1: Използване на номер на позиция
Това е първият начин за достъп до аргументите чрез използване на параметрите по подразбиране ($1...$9). Изображението по-долу го обяснява:
Изход:
Метод 2: Използване на масив.
Това е вторият начин за предаване на аргументите като масив. Следвайте дадения алгоритъм, за да приложите този метод.
Етап 1: Създайте Bash скрипт.
Стъпка 2: Декларирайте произволно име на променлива и задайте стойността му като $a в следната форма:
variable_name=('$@')
Където $@ е аргументът по подразбиране, който се използва за съхраняване на аргументите (предаваме) като масив.
Стъпка 3: Покажете аргументите, като дефинирате техния индекс на масив в следната форма:
${variable_name[i]}
Стъпка 4: Запазете и затворете скрипта.
Стъпка 5: Изпълнете скрипта чрез предаване на аргументите.
Вижте следната програма:
програма:
#!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}
На Bash Console:
Изход:
Заместване на команди
Според официалната документация на Bash
'Command Substitution позволява изхода на команда да замени самата команда. Bash извършва разширяването, като изпълнява командата в среда на подобвивка и замества заместването на командата със стандартния изход на командата, като всички завършващи нови редове са изтрити. Вградените нови редове не се изтриват, но могат да бъдат премахнати по време на разделянето на думи.'
Заместването на команда се отнася до разширение, което Bash изпълнява вместо нас. Той взема изхода на командата Bash, съхранява в променлива (обикновено) и показва обратно с ехо.
Заместване на команди предлага гъвкавост на данните по отношение на скриптове и присвояване на променливи. Това е просто и лесно за извеждане на един команден ред. В случай, че изходът преминава през няколко реда, тогава новите завършващи редове се премахват и пълното съдържание на изхода завършва на един ред.
Вижте синтаксиса за употреба:
Синтаксис
Класическата форма на заместване на команди в променлива или заместване на команда използва обратни кавички (`...`), както е дадено по-долу:
variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command`
Сега правим заместване на команди, като поставяме командите в скоби (предшествани от знака за долар ($)). Погледни:
variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command)
И така, нека направим заместване на команда с пример според дискусията.
В този пример заместваме една команда ls в променлива. Вижте терминала.
Ред 1: Без заместване на команда изходът се разширява в няколко реда.
Ред 2 и 3: При заместване на команда изходът завършва на един ред (спестено място чрез премахване на новозакъснели редове).
Следва Bash скриптът за тестване на заместването на командата.
програма:
#! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult
Вижте Bash Console:
Изход:
Следват двата метода, които използваме за предаване на аргументи от командния ред:
Метод 1: Използване на номер на позиция
Това е първият начин за достъп до аргументите чрез използване на параметрите по подразбиране (...). Изображението по-долу го обяснява:
Изход:
Метод 2: Използване на масив.
Това е вторият начин за предаване на аргументите като масив. Следвайте дадения алгоритъм, за да приложите този метод.
Етап 1: Създайте Bash скрипт.
Стъпка 2: Декларирайте произволно име на променлива и задайте стойността му като $a в следната форма:
variable_name=('$@')
Където $@ е аргументът по подразбиране, който се използва за съхраняване на аргументите (предаваме) като масив.
Стъпка 3: Покажете аргументите, като дефинирате техния индекс на масив в следната форма:
${variable_name[i]}
Стъпка 4: Запазете и затворете скрипта.
Стъпка 5: Изпълнете скрипта чрез предаване на аргументите.
Вижте следната програма:
програма:
#!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}
На Bash Console:
Изход:
Заместване на команди
Според официалната документация на Bash
'Command Substitution позволява изхода на команда да замени самата команда. Bash извършва разширяването, като изпълнява командата в среда на подобвивка и замества заместването на командата със стандартния изход на командата, като всички завършващи нови редове са изтрити. Вградените нови редове не се изтриват, но могат да бъдат премахнати по време на разделянето на думи.'
Заместването на команда се отнася до разширение, което Bash изпълнява вместо нас. Той взема изхода на командата Bash, съхранява в променлива (обикновено) и показва обратно с ехо.
Заместване на команди предлага гъвкавост на данните по отношение на скриптове и присвояване на променливи. Това е просто и лесно за извеждане на един команден ред. В случай, че изходът преминава през няколко реда, тогава новите завършващи редове се премахват и пълното съдържание на изхода завършва на един ред.
Вижте синтаксиса за употреба:
Синтаксис
Класическата форма на заместване на команди в променлива или заместване на команда използва обратни кавички (`...`), както е дадено по-долу:
variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command`
Сега правим заместване на команди, като поставяме командите в скоби (предшествани от знака за долар ($)). Погледни:
variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command)
И така, нека направим заместване на команда с пример според дискусията.
В този пример заместваме една команда ls в променлива. Вижте терминала.
Ред 1: Без заместване на команда изходът се разширява в няколко реда.
Ред 2 и 3: При заместване на команда изходът завършва на един ред (спестено място чрез премахване на новозакъснели редове).
Следва Bash скриптът за тестване на заместването на командата.
програма:
#! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult
Вижте Bash Console:
Изход: