Шта је Макефиле и како то функционише у Линуку?

Шта је Макефиле и како то функционише у Линуку

Si желите да покренете или ажурирате задатак када се ажурирају одређене датотеке, услужни програм маке може добро доћи. Услужни програм маке захтева датотеку макефиле која дефинише скуп задатака које треба извршити.

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

Овом приликом хајде да схватимо како ова врста датотека функционише у оквиру Линука.

Макефиле датотека У основи се разликује у четири основне врсте изјава:

  • Коментари
  • Променљиве
  • Експлицитна правила.
  • Имплицитна правила.

Изричита правила одређују које датотеке зависе од других датотека, као и наредбе потребне за састављање одређене датотеке.

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

У овом примеру нећемо користити последња два, Почећемо само са штампањем класичног „Хелло Ворлд“ на терминалу.

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

У овом случају назовимо то "пример-направи" а у оквиру овога Направићемо датотеку израде са следећим садржајем:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
echo "Hola Mundo"

Сада покрените датотеку тако што ћете откуцати маке унутар директорија, излаз ће бити:

make
echo "Hola Mundo"
Hola Mundo

Као што видите када је извршена маке датотека, приказује се наредба ецхо "Хелло Ворлд", праћена излазом стварне наредбе. То често не желимо. Да бисте потиснули овај излаз када покренете маке, само додајте знак "@" пре еха:

Практични пример овога је:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"

Сада можемо поново покренути макефиле. Излаз само овај треба да покаже:

make
Hola Mundo

Ово је прилично основно. Али као што можда знате, маке датотеке садрже пуно ствари, од којих оне указују на секвенце које треба следити.

У ову датотеку можемо додати неколико једноставних секвенци.

Ло куе ми ћемо урадити да уредимо датотеку на следећи начин:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

При поновном покретању маке датотеке, ово ће извршити само први циљ. То је зато што је само први циљ у датотеци маке задани циљ.

Да се ​​трчи у низу потребно је у датотеци означити са „алл“. Одговорност „тамо“ је да позива друге циљеве.

all: esta_es_una_variable crear_un_archivo_nuevo
#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

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

На исти начин могуће је извршити циљ унутар датотеке макефиле, ово се углавном користи.

Изменићемо нашу датотеку и на крају ћемо додати следеће:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

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

Ово радимо са:

make clean

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

Очигледно је да можете да направите већу и сложенију датотеку, али ово је пуки пример за почетнике (укључујући и мене) који упознају како ово функционише.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Арг0с дијо

    Врло занимљив чланак. Питање ... оно што ви називате „променљивим“ не би биле функције или методе?

    1.    Давид нарањо дијо

      Заправо, да, пријатељу, хвала на исправци.
      Живели! 🙂

  2.   Петар дијо

    Одлично, надам се да ћете наставити да копате.

  3.   МануелАЛцоцер дијо

    Па, ни једно ни друго, https://www.gnu.org/software/make/manual/make.html, су "мете"

  4.   МануелАЛцоцер дијо

    правила

  5.   Себас дијо

    Надамо се да ће и даље објашњавати овакве ствари, „свеприсутне и елементарне“, свакодневног рада Линука, што нико никада не објашњава са истом страшћу као што се проповедају те „предности и рад“.