Rubutun Bash: farkon

Rubutun Bash: farkon
Rubutun Bash Sashe na 2: madaukai
Rubutun Bash, Sashe na 3: Zaɓuɓɓukan Layin Umurni da Sauyawa
Rubutun Bash Sashe na 4: Shigarwa da Fitarwa
Rubutun Bash, Sashe na 5: Sigina, Ayyukan Fage, Gudanar da Rubutun
Rubutun Bash, Sashe na 6: Ayyuka da Ci gaban Laburare
Rubutun Bash, Sashe na 7: sed da sarrafa Kalma
Rubutun Bash, Sashe na 8: Awk Harshen sarrafa bayanai
Rubutun Bash Sashe na 9: Kalamai na yau da kullun
Rubutun Bash Sashe na 10: Misalai masu Aiki
Rubutun Bash, Sashe na 11: Tsammani da sarrafa kansa na kayan aikin mu'amala

Yau za mu yi magana game da rubutun bash. Wannan - rubutun layin umarni, an rubuta don harsashi. Akwai wasu harsashi kamar zsh, tcsh, ksh, amma za mu mai da hankali kan bash. An yi nufin wannan kayan don kowa da kowa, yanayin kawai shine ikon yin aiki a ciki layin umarni Linux

Rubutun Bash: farkon

Rubutun layin umarni tarin umarni iri ɗaya ne waɗanda za a iya shigar da su daga madannai, tattara su cikin fayiloli kuma a haɗa su ta wata manufa ta gama gari. A wannan yanayin, sakamakon aikin ƙungiyoyi na iya zama mai ƙima mai zaman kansa ko kuma ya zama bayanan shigar da wasu ƙungiyoyi. Rubutun hanya ce mai ƙarfi don sarrafa ayyukan da aka yi akai-akai.

Rubutun Bash: farkon

Don haka, idan muka yi magana game da layin umarni, yana ba ku damar aiwatar da umarni da yawa a lokaci ɗaya ta shigar da su rabu da wani yanki:

pwd ; whoami

A zahiri, idan kun gwada wannan a cikin tashar ku, an riga an rubuta rubutun bash ɗin ku na farko wanda ya ƙunshi umarni biyu. Yana aiki kamar haka. Tawagar farko pwd yana nuna bayani game da kundin adireshin aiki na yanzu, sannan umarni whoamiyana nuna bayani game da mai amfani da kuka shiga azaman.

Yin amfani da wannan hanyar, zaku iya haɗa yawancin umarni kamar yadda kuke so akan layi ɗaya, iyaka kawai shine matsakaicin adadin muhawara da za'a iya wuce zuwa shirin. Kuna iya ayyana wannan iyaka ta amfani da umarni mai zuwa:

getconf ARG_MAX

Layin umarni babban kayan aiki ne, amma dole ne ka shigar da umarni a ciki duk lokacin da kake buƙatar su. Idan muka rubuta jerin umarni a cikin fayil kuma kawai mu kira wannan fayil ɗin don aiwatar da su fa? A gaskiya ma, fayil ɗin da muke magana akai ana kiransa rubutun layin umarni.

Yadda rubutun bash ke aiki

Ƙirƙiri fanko fayil ta amfani da umarnin touch. Layinsa na farko yana buƙatar nuna wace harsashi za mu yi amfani da shi. Muna sha'awar bash, don haka layin farko na fayil ɗin zai kasance:

#!/bin/bash

Sauran layukan da ke cikin wannan fayil ɗin suna amfani da alamar zanta don nuna tsokaci cewa harsashi baya aiwatarwa. Duk da haka, layin farko lamari ne na musamman, akwai zanta wanda ke biye da alamar motsin rai (ana kiran wannan jerin. shebang) da kuma hanyar zuwa bash, nuna tsarin da aka ƙirƙiri rubutun musamman don bash.

An raba umarnin Shell ta hanyar ciyarwar layi, ana raba sharhi da alamar zanta. Ga yadda yake kama:

#!/bin/bash
# This is a comment
pwd
whoami

Anan, kamar akan layin umarni, zaku iya rubuta umarni akan layi ɗaya, waɗanda ke raba su ta semicolons. Koyaya, idan kun rubuta umarni akan layi daban-daban, fayil ɗin yana da sauƙin karantawa. A kowane hali, harsashi zai sarrafa su.

Saita izinin fayil ɗin rubutun

Ajiye fayil ɗin suna ba shi suna myscript, kuma aikin ƙirƙirar rubutun bash ya kusan ƙare. Yanzu abin da ya rage shi ne sanya wannan fayil ɗin aiwatarwa, in ba haka ba, idan kuna ƙoƙarin aiwatar da shi, zaku gamu da kuskure. Permission denied.

Rubutun Bash: farkon
Ƙoƙarin gudanar da fayil ɗin rubutun tare da daidaitawar izini ba daidai ba

Bari mu sanya fayil ɗin aiwatarwa:

chmod +x ./myscript

Yanzu bari mu gwada aiwatar da shi:

./myscript

Bayan saita izini komai yana aiki yadda ya kamata.

Rubutun Bash: farkon
Nasarar gudanar da rubutun bash

Fitowar saƙo

Don fitar da rubutu zuwa Linux console, yi amfani da umarnin echo. Bari mu yi amfani da ilimin wannan gaskiyar kuma mu gyara rubutun mu, muna ƙara bayani ga bayanan da aka fitar ta hanyar umarnin da aka rigaya a ciki:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Wannan shine abin da ke faruwa bayan gudanar da rubutun da aka sabunta.

Rubutun Bash: farkon
Fitar da saƙonni daga rubutun

Yanzu za mu iya nuna bayanin kula ta amfani da umarnin echo. Idan baku san yadda ake gyara fayil ta amfani da kayan aikin Linux ba, ko kuma ba ku taɓa ganin umarnin ba a baya echo, duba wannan da kaya.

Amfani da masu canzawa

Masu canji suna ba ku damar adana bayanai a cikin fayil ɗin rubutun, kamar sakamakon umarni, don amfani da wasu umarni.

Babu laifi a aiwatar da umarni ɗaya ba tare da adana sakamakonsu ba, amma wannan hanyar tana da iyaka sosai a cikin iyawarta.

Akwai nau'ikan masu canji guda biyu waɗanda za a iya amfani da su a cikin rubutun bash:

  • Canje-canjen Muhalli
  • Canje-canje masu amfani

Canje-canjen Muhalli

Wani lokaci umarnin harsashi yana buƙatar aiki tare da wasu bayanan tsarin. Ga misalin yadda ake nuna kundin adireshin gida na mai amfani na yanzu:

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

Lura cewa za mu iya amfani da tsarin canji $HOME a cikin ƙididdiga biyu, wannan ba zai hana tsarin gane shi ba. Wannan shine abin da kuke samu idan kun gudanar da yanayin da ke sama.

Rubutun Bash: farkon
Amfani da canjin yanayi a cikin rubutun

Idan kana buƙatar nuna alamar dala akan allon fa? Bari mu gwada wannan:

echo "I have $1 in my pocket"

Tsarin zai gano alamar dala a cikin kirtani da aka nakalto kuma ya ɗauka cewa mun yi nuni da mabambanta. Rubutun zai yi ƙoƙarin nuna ƙimar canjin da ba a bayyana ba $1. Wannan ba shine abin da muke bukata ba. Me za a yi?

A wannan yanayin, ta yin amfani da halin tserewa, koma baya, kafin alamar dollar zai taimaka:

echo "I have $1 in my pocket"

Rubutun yanzu zai fitar da daidai abin da ake sa ran.

Rubutun Bash: farkon
Yin amfani da jerin tserewa don buga alamar dala

Canje-canje masu amfani

Baya ga masu canjin yanayi, rubutun bash yana ba ku damar ayyana da amfani da naku masu canji a cikin rubutun. Irin waɗannan masu canji suna riƙe ƙima har sai rubutun ya kammala aiwatarwa.

Kamar yadda yake tare da masu canjin tsarin, ana iya samun dama ga masu canjin mai amfani ta amfani da alamar dala:
TNW-CUS-FMP - lambar talla don rangwame 10% akan ayyukanmu, akwai don kunnawa cikin kwanaki 7

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Wannan shine abin da ke faruwa bayan gudanar da irin wannan rubutun.

Rubutun Bash: farkon
Canje-canje na Musamman a cikin Rubutu

Sauya Umurni

Ɗaya daga cikin abubuwan da suka fi amfani da rubutun bash shine ikon cire bayanai daga fitarwar umarni da sanya shi zuwa masu canji, yana ba ku damar amfani da wannan bayanin a ko'ina cikin fayil ɗin rubutun.

Akwai hanyoyi guda biyu don yin wannan.

  • Yin amfani da maɓallin baya "'"
  • Ta tsari $()

Lokacin amfani da hanya ta farko, a kula kar a haɗa alamar zance guda ɗaya a maimakon ta baya. Dole ne a haɗa umarnin a cikin waɗannan gumaka guda biyu:

mydir=`pwd`

A hanya ta biyu, an rubuta irin wannan abu kamar haka:

mydir=$(pwd)

Kuma rubutun na iya zama kamar haka:

#!/bin/bash
mydir=$(pwd)
echo $mydir

A lokacin aikinsa, fitar da umarnin pwdza a ajiye a cikin wani m mydir, abubuwan da ke ciki, ta amfani da umarnin echo, zai tafi zuwa na'ura wasan bidiyo.

Rubutun Bash: farkon
Rubutun da ke adana sakamakon umarni a cikin ma'auni

Ayyukan lissafi

Don aiwatar da ayyukan lissafi a cikin fayil ɗin rubutun, zaku iya amfani da ginin kamar $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

Rubutun Bash: farkon
Ayyukan Lissafi a cikin Rubutu

idan-to sarrafawa ginawa

A wasu yanayi, kuna buƙatar sarrafa tafiyar aiwatar da umarni. Alal misali, idan wani ƙima ya fi biyar, kuna buƙatar yin aiki ɗaya, in ba haka ba, wani. Wannan yana aiki a cikin yanayi da yawa, kuma a nan tsarin sarrafawa zai taimake mu if-then. A mafi saukin tsari yana kama da haka:

if команда
then
команды
fi

Ga misalin aiki:

#!/bin/bash
if pwd
then
echo "It works"
fi

A wannan yanayin, idan an aiwatar da umarnin pwdzai kammala cikin nasara, za a nuna rubutun "yana aiki" a cikin na'ura mai kwakwalwa.

Mu yi amfani da ilimin da muke da shi kuma mu rubuta rubutun da ya fi rikitarwa. Bari mu ce muna buƙatar nemo wani mai amfani a ciki /etc/passwd, kuma idan kun sami nasarar gano shi, ku ba da rahoton cewa akwai.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

Wannan shine abin da ke faruwa bayan gudanar da wannan rubutun.

Rubutun Bash: farkon
Binciken mai amfani

Anan mun yi amfani da umarnin grepdon nemo mai amfani a cikin fayil /etc/passwd. Idan tawagar grepwanda ba ku sani ba, ana iya samun bayaninsa a nan.

A cikin wannan misali, idan an sami mai amfani, rubutun zai nuna saƙon da ya dace. Idan ba a iya samun mai amfani fa? A wannan yanayin, rubutun zai kammala aiwatarwa kawai ba tare da gaya mana komai ba. Muna son ya gaya mana game da wannan kuma, don haka za mu inganta lambar.

idan-to-sa'an nan sarrafawa ginawa

Domin shirin ya sami damar bayar da rahoton duka sakamakon bincike mai nasara da gazawar, za mu yi amfani da ginin if-then-else. Ga yadda yake aiki:

if команда
then
команды
else
команды
fi

Idan umarnin farko ya dawo da sifili, wanda ke nufin an aiwatar da shi cikin nasara, yanayin zai zama gaskiya kuma aiwatarwa ba zai ci gaba tare da reshe ba. else. In ba haka ba, idan aka dawo da wani abu banda sifili, wanda zai nuna gazawa, ko sakamakon ƙarya, umarnin bayan else.

Bari mu rubuta rubutun mai zuwa:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

Kisa nasa ya gangara else.

Rubutun Bash: farkon
Gudanar da rubutun tare da ginawa idan-sai-wani

To, bari mu ci gaba mu tambayi kanmu game da wasu yanayi masu rikitarwa. Menene idan kuna buƙatar bincika ba yanayin ɗaya ba, amma da yawa? Misali, idan an sami wanda ake so, sai a nuna sako daya, idan wani sharadi ya cika, sai a nuna wani sako, da sauransu. A irin wannan yanayin, yanayin gida zai taimake mu. Ga alama kamar haka:

if команда1
then
команды
elif команда2
then
команды
fi

Idan umarni na farko ya dawo da sifili, wanda ke nuna nasarar aiwatar da shi, za a aiwatar da umarnin da ke cikin tubalin farko. then, in ba haka ba, idan yanayin farko karya ne kuma idan umarni na biyu ya dawo da sifili, toshe na biyu na lambar za a aiwatar da shi.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

A cikin irin wannan rubutun, zaku iya, misali, ƙirƙirar sabon mai amfani ta amfani da umarnin useradd, idan binciken bai samar da sakamako ba, ko yin wani abu dabam mai amfani.

Kwatanta lambobi

A cikin rubutun zaku iya kwatanta ƙimar lambobi. A ƙasa akwai jerin umarni masu dacewa.

n1 -eq n2Ya dawo gaskiya idan n1 daidai n2.
n1 -ge n2 Ya dawo gaskiya idan n1fiye ko daidai n2.
n1 -gt n2Ya dawo gaskiya idan n1 fiye da n2.
n1 -le n2Ya dawo gaskiya idan n1kasa ko daidai n2.
n1 -lt n2Yana dawo da gaskiya idan n1 ya gaza n2.
n1 -ne n2Ya dawo gaskiya idan n1ba daidai ba n2.

A matsayin misali, bari mu gwada ɗaya daga cikin ma'aikatan kwatanta. Lura cewa an rufe furcin a maƙallan murabba'i.

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

Wannan shine abin da wannan umarni zai fitar.

Rubutun Bash: farkon
Kwatanta lambobi a cikin rubutun

Ƙimar canzawa val1fiye da 5, reshe yana ƙarewa ana kashe shi thenafaretan kwatancen kuma ana nuna saƙon da ya dace a cikin na'ura wasan bidiyo.

Kwatancen igiya

Rubutun kuma na iya kwatanta ƙimar kirtani. Masu yin kwatancen suna da sauƙi, amma ayyukan kwatanta kirtani suna da wasu fasaloli, waɗanda za mu taɓa ƙasa. Anan akwai jerin masu aiki.

str1 = str2 Gwada kirtani don daidaito, komawa gaskiya idan igiyoyin sun kasance iri ɗaya.
str1 != str2Yana dawowa gaskiya idan igiyoyin ba iri ɗaya bane.
str1 < str2Ya dawo gaskiya idan str1kasa da str2.
str1 > str2 Ya dawo gaskiya idan str1fiye da str2.
-n str1 Yana dawowa gaskiya idan tsayi str1Sama da sifili.
-z str1Yana dawowa gaskiya idan tsayi str1daidai da sifili.

Ga misali na kwatanta kirtani a cikin rubutun:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

A sakamakon aiwatar da rubutun, muna samun masu zuwa.

Rubutun Bash: farkon
Kwatanta igiyoyi a cikin rubutun

Anan ga fasalin kwatancen kirtani wanda ya dace a ambata. Wato, ">" da "<" masu aiki dole ne a kubuta tare da koma baya, in ba haka ba rubutun ba zai yi aiki daidai ba, kodayake babu saƙon kuskure da zai bayyana. Rubutun yana fassara alamar ">" azaman umarnin turawa fitarwa.

Ga yadda aiki tare da waɗannan masu aiki a cikin lamba:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Ga sakamakon rubutun.

Rubutun Bash: farkon
Kwatancen igiya, an ba da gargaɗi

Lura cewa rubutun, kodayake an aiwatar da shi, yana ba da gargaɗi:

./myscript: line 5: [: too many arguments

Don kawar da wannan gargaɗin, mun ƙare $val2 a cikin kalmomi biyu:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Yanzu komai yana aiki kamar yadda ya kamata.

Rubutun Bash: farkon
Kwatancen igiya

Wani fasali na ">" da "<" masu aiki shine yadda suke aiki da manyan haruffa da ƙananan haruffa. Domin fahimtar wannan fasalin, bari mu shirya fayil ɗin rubutu mai abun ciki mai zuwa:

Likegeeks
likegeeks

Bari mu ajiye shi ta hanyar ba shi suna myfile, sannan gudanar da umarni mai zuwa a cikin tashar:

sort myfile

Zai tsara layin daga fayil ɗin kamar haka:

likegeeks
Likegeeks

tawagar sort, ta hanyar tsohuwa, yana tsara kirtani a cikin tsari mai hawa, wato, ƙananan haruffa a misalinmu ya fi na babba. Yanzu bari mu shirya rubutun da zai kwatanta igiyoyi iri ɗaya:

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Idan kun gudanar da shi, sai ya zama cewa komai ya bambanta - ƙaramin harafin yanzu ya fi na babba girma.

Rubutun Bash: farkon
Tsarin tsari da kwatanta kirtani a cikin fayil ɗin rubutun

A kwatancen umarni, manyan haruffa sun yi ƙasa da ƙananan haruffa. Kwatankwacin igiyoyi anan ana yin su ta hanyar kwatanta lambobin ASCII na haruffa, tsarin tsari don haka ya dogara da lambobin haruffa.

tawagar sort, bi da bi, yana amfani da nau'in tsari da aka ƙayyade a cikin saitunan harshe na tsarin.

Binciken fayil

Wataƙila ana amfani da umarni masu zuwa galibi a cikin rubutun bash. Suna ba ku damar bincika yanayi daban-daban game da fayiloli. Ga jerin waɗannan umarni.

-d fileYana bincika ko akwai fayil kuma jagora ne.
-e fileBincika idan akwai fayil ɗin.
-f file Yana bincika ko akwai fayil kuma fayil ne.
-r fileYana bincika ko akwai fayil ɗin kuma ana iya karantawa.
-s file ПYana duba ko akwai fayil ɗin kuma ba komai bane.
-w fileYana bincika ko akwai fayil ɗin kuma ana iya rubutawa.
-x fileYana bincika ko akwai fayil ɗin kuma ana iya aiwatarwa.
file1 -nt file2 Yana duba idan ya saba file1fiye da file2.
file1 -ot file2Yana duba idan ya tsufa file1fiye da file2.
-O file Yana bincika ko akwai fayil ɗin kuma mallakar mai amfani na yanzu ne.
-G fileYana bincika ko akwai fayil da ko ID ɗin ƙungiyarsa yayi daidai da ID ɗin ƙungiyar mai amfani na yanzu.

Waɗannan dokokin, da kuma wasu da yawa da aka tattauna a yau, suna da sauƙin tunawa. Sunayensu, kasancewar gajerun kalmomi dabam-dabam, kai tsaye suna nuna cak ɗin da suke yi.

Bari mu gwada ɗaya daga cikin umarni a aikace:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

Wannan rubutun, don kundin adireshi na yanzu, zai nuna abubuwan da ke ciki.

Rubutun Bash: farkon
Jerin abubuwan da ke cikin kundin adireshi

Mun yi imanin cewa za ku iya gwaji tare da ragowar umarnin da kanku; ana amfani da su duka bisa ga ka'ida ɗaya.

Sakamakon

A yau mun yi magana game da yadda ake fara rubuta rubutun bash kuma mun rufe wasu abubuwa na asali. A gaskiya ma, batun shirye-shiryen bash yana da girma. Wannan labarin fassarar ɓangaren farko ne na babban jerin abubuwa 11. Idan kuna son ci gaba a yanzu, ga jerin asalin waɗannan kayan. Don saukakawa, an haɗa fassarar da kuka karanta a nan.

  1. Rubutun Bash Mataki Ta Mataki - a nan muna magana ne game da yadda za a fara ƙirƙirar rubutun bash, ana yin la'akari da amfani da masu canji, tsarin yanayi, ƙididdiga, kwatancen lambobi, kirtani, da kuma gano bayanai game da fayiloli an kwatanta.
  2. Rubutun Bash Part 2, Bash mai ban mamaki - a nan fasalulluka na aiki tare da kuma yayin da aka bayyana madaukai.
  3. Rubutun Bash Sashe na 3, Ma'auni & zaɓuɓɓuka - wannan kayan yana keɓance sigogin layin umarni da maɓallan da za a iya wuce su zuwa rubutun, aiki tare da bayanan da mai amfani ya shiga kuma ana iya karantawa daga fayiloli.
  4. Rubutun Bash Part 4, Input & Output - a nan muna magana ne game da masu bayanin fayil da aiki tare da su, game da shigarwa, fitarwa, rafukan kuskure, da kuma game da sake jujjuya fitarwa.
  5. Rubutun Bash Part 5, Sighals & Ayyuka - wannan abu ya keɓe ga siginar Linux, sarrafa su a cikin rubutun, da ƙaddamar da rubutun akan jadawalin.
  6. Rubutun Bash Part 6, Ayyuka - Anan zaku iya koyo game da ƙirƙira da amfani da ayyuka a cikin rubutun da haɓaka ɗakunan karatu.
  7. Rubutun Bash Part 7, Amfani da sed - wannan labarin ya keɓe don aiki tare da editan rubutu mai yawo.
  8. Rubutun Bash Part 8, Amfani da awk - wannan kayan an sadaukar da shi ga shirye-shirye a cikin harshen sarrafa bayanan awk.
  9. Rubutun Bash Part 9, Magana akai-akai - Anan zaku iya karantawa game da amfani da maganganu na yau da kullun a cikin rubutun bash.
  10. Rubutun Bash Part 10, Misalai Masu Aiki - Anan akwai dabarun aiki tare da saƙon da za a iya aikawa ga masu amfani, da kuma hanyar lura da faifai.
  11. Rubutun Bash Part 11, Tsammanin Umurni - an sadaukar da wannan kayan ga kayan aikin tsammanin, wanda da shi zaku iya sarrafa mu'amala ta atomatik tare da abubuwan amfani. Musamman, muna magana ne game da rubutun da ake tsammani da kuma hulɗar su tare da rubutun bash da sauran shirye-shirye.

Mun yi imanin cewa ɗayan mahimman fasalulluka na wannan jerin labaran shine, farawa daga mafi sauƙi, dacewa da masu amfani da kowane matakin, sannu a hankali yana haifar da batutuwa masu mahimmanci, yana ba kowa damar ci gaba a ƙirƙirar rubutun layin umarni na Linux. .

Ya ku masu karatu! Muna rokon bash programming gurus su yi magana kan yadda suka kai ga kololuwar ikonsu, su bayyana sirrinsu, muna kuma fatan samun ra'ayi daga wadanda suka rubuta rubutun farko.

Rubutun Bash: farkon

Masu amfani da rajista kawai za su iya shiga cikin binciken. Shigadon Allah.

Shin zan fassara sauran jerin labaran?

  • Haka ne!

  • Babu bukata

Masu amfani 1030 sun kada kuri'a. Masu amfani 106 sun kaurace.

source: www.habr.com

Add a comment