Линук наредбе

Басх евал команда

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

Синтакса:

евал [аргумент…]

Овде се аргументи рашчлањују и комбинују у низ који ће извршити љуска. 'евал' враћа излазни статусни код након извршавања наредбе. 'евал' враћа 0 као статусни код излаза ако није наведен ниједан аргумент или је наведен само нулти аргумент.

Пример-1: Извршите команду 'вц' користећи 'евал'

Претпоставимо да се појави текстуална датотека „одељење.ткт”Садржи следећи текст. Укупан број редова датотеке може се пребројати наредбом 'вц'.

одељење.ткт

ЦСЕ
ЕЕЕ
ЕТЕ
ЕНГЛЕСКИ ЈЕЗИК
ББА
АПОТЕКА

Следећа наредба ће сачувати наредбу 'вц' за бројање укупног броја редова датотеке, одељење.ткт на променљиву, $ моја наредба.

$ мицомманд = "вц -л одељење.ткт "

Следећа команда 'евал' покреће наредбу 'вц' и исписује укупан број линија.

$ евал $ мицомманд

Излаз:

Излаз то показује одељење.ткт датотека има 6 редова.

Екамплел-2: Извршите наредбу 'екпр' користећи 'евал'

Направите басх датотеку са именом евалтест.сх и додајте следећу скрипту. Ова скрипта ће променљивим $ к и $ и доделити две целобројне вредности. Команде 'екпр' и 'ецхо' додељене су у две променљиве, $ ц1 и $ ц2, које се касније извршавају помоћу команде 'евал'.

евалтест.сх

#!/ бин / басх
# Иницијализирајте променљиве к и и
к = 5
и = 15
# Прва променљива команде се користи за додељивање наредбе 'екпр' за додавање вредности $ к и $ и
ц1 = "'израз $ к + $ и'"
# Друга променљива команде се користи за додељивање команде 'ецхо'
ц2 = "ехо"
# 'евал' ће израчунати и исписати збир $ к и $ и извршавањем наредби $ ц1
и $ ц2 променљиве
евал $ ц2 $ ц1

Покрените скрипту.

$ басх евалтест.сх

Збир 5 и 15 је 20 који је приказан у излазу.

Пример-3: Исписати вредност променљиве која је додељена другој променљивој

Направите басх скрипту која се зове евалтест2.сх са следећим скриптом. Овде се једна променљива користи за додељивање имена другој променљивој која садржи низ података. Команда 'евал' ће исписати вредност променљиве која садржи име друге променљиве као садржај.

евалтест2.сх

#!/ бин / басх
# Доделите вредност низа променљивој, $ стр1
стр1 = "Схелл скрипта"
# Доделите име променљиве, „стр1“ променљивој $ стр2
стр2 = стр1
# Спремите наредбу у променљиву, $ цомманд
цомманд = "ецхо"
Команда # 'евал' извршиће команду 'ецхо' и исписати вредност променљиве
који садржи друга променљива
евал $ цомманд \ $ $ стр2

Покрените скрипту.

$ басх евалтест2.сх

Штампа се вредност променљиве $ стр1.

Постоји још један начин за приступ вредности променљиве чији је назив вредност друге променљиве. Користећи '!'симболу може се приступити вредности ове врсте променљиве. Следећа наредба се може користити као алтернатива претходној скрипти и излаз ће бити исти.

$ стр1 = "Схелл скрипта"; стр2 = стр1; цомманд = "ехо"; евал $ цомманд $ !стр2

Пример-4: Направите низ променљивих са вредностима и израчунајте збир вредности помоћу команде 'евал'

Направите басх скрипту која се зове евалтест3.сх и додајте следећу скрипту. Ова скрипта ће створити низ променљивих и сачувати вредности у променљиве помоћу команде 'евал'. Вредности променљивих ће се додати и сачувати у променљиву која се зове $ сум. Даље, команда 'ецхо' са вредностима низа додељује се променљивој која се користи у наредби 'евал' за испис вредности променљиве $ сум.

евалтест3.сх

#!/ бин / басх
# Иницијализујте променљиву $ сум вредношћу 0
сума = 0
# Прогласите фор петљу која ће се поновити 4 пута
за н у 1… 4
урадите
# Креирајте четири променљиве помоћу команде евал
евал к $ н = $ н
# Додајте вредности променљиве са $ сум
сума = $ (($ сума + $ к $ н))
Готово
# Доделите команду 'ецхо' низом променљивој
цомманд = "ецхо 'Резултат збира ='"
наредба # 'евал' исписује вредност збира помоћу променљивих
евал $ цомманд $ сум

Покрените скрипту.

$ басх евалтест3.сх

Збир четири променљиве је 1 + 2 + 3 + 4 = 10 која се штампа.

Пример-5: Коришћење команде 'евал' за уклањање листе датотека

Направите басх датотеку која се зове евалтест4.сх са следећим скриптом. Ова скрипта ће прочитати три аргумента из наредбеног ретка као имена датотека која ће се уклонити и сачувати вредности аргумената у променљиву низа, $ фн. 'рм' наредба се чува у променљивој, $ цомманд. Овде је декларисана петља Фор да би преузела свако име датотеке и уклонила датотеку помоћу команде 'евал' ако датотека постоји.

евалтест4.сх

#!/ бин / басх
# Објавите низ
изјавити -А фн
# Прочитајте три аргумента командне линије и спремите у три индекса низа
фн [0] = $ 1
фн [1] = 2 УСД
фн [2] = 3 УСД
# Спремите команду ремове у променљиву
цомманд = "рм"
Петља # фор ће се поновити три пута да прочита три елемента низа
за индекс у 0 1 2
урадите
# Проверите да ли датотека постоји или не постоји
ако [[-ф $ фн [$ индекс]]]; онда
# ако датотека постоји, уклоните је
евал $ цомманд $ фн [$ индек]
# Обавестите корисника да је датотека уклоњена
ецхо "$ фн [$ индек] је избрисан."
Елсе
# Обавестите корисника да датотека не постоји
ецхо "$ фн [$ индек] не постоји."
фи
Готово

Покрените скрипту.

$ басх евалтест4.сх ознаке.доцк ставка.ткт производ.доцк

Овде су дата три имена датотека у време извршавања скрипте. Излаз показује да означава.доцк и производ.доцк постоје на тренутној локацији и датотеке се уклањају и, итем.ткт не постоји на тренутној локацији.

Закључак

Било која басх наредба може се извршити наредбом 'евал' декларирањем као низ. 'евал' наредба се користи у овом упутству за извршавање различитих уграђених наредби басх-а и стварање низа променљивих. Корисници наредбе 'евал' ће бити обрисани за кориснике и моћи ће да је користе у разне сврхе након читања овог водича.

Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...
Како приказати бројач ФПС-а у Линук играма
Линук гаминг добио је велики потицај када је Валве најавио Линук подршку за Стеам клијент и њихове игре 2012. године. Од тада су многе ААА и индие игр...
Како преузети и играти Сид Меиер'с Цивилизатион ВИ на Линук-у
Увод у игру Цивилизатион 6 је модерни поглед на класични концепт представљен у серији игара Аге оф Емпирес. Идеја је била прилично једноставна; започе...