Komandų eilutės derinimas su dviem ar daugiau komandų taip pat žinomas kaip "komandų grandinė". Mes parodysime skirtingus būdus, kodėl komandų eilutės gali būti sujungtos.
Pirmas variantas: "Semicolon" (;) operatorius
Kalbant apie semikoloną (;), galite paleisti keletą komandų iš eilės, nepriklausomai nuo to, ar kiekviena ankstesnė komanda taps sėkminga. Pvz., Atidarykite terminalo langą (Ctrl + Alt + T Ubuntu ir Linux Mint). Tada įveskite šias tris komandas vienoje eilutėje, atskirti kabliataškiais ir paspauskite Enter. Tai suteiks jums dabartinio katalogo (
ls
), sužinokite, kuris aplankas šiuo metu esate ((
pwd
) ir parodykite savo prisijungimo vardą (
whoami
) viskas vienu metu.
ls; pwd; whoami
Taip pat nereikia praleisti tarp kabliataškiu ir komandomis. Galite įvesti tris komandas kaip
ls;pwd;whoami
. Tačiau tarpai daro kombinuotą komandą lengviau skaitomą, o tai ypač naudinga, jei kombinuotą komandą įjungiate į shell scenarijų.
Dviejų variantas: loginis ir operatorius (&&)
Jei norite, kad antroji komanda būtų paleista tik tada, kai pirmoji komanda yra sėkminga, atskirkite komandas su loginiu operatoriumi AND, kuris yra du ampersantai (
&&
) Pavyzdžiui, norime sukurti katalogą MyFolder, o tada pakeisti į tą katalogą, jei jis buvo sėkmingai sukurtas. Taigi, komandinėje eilutėje įveskite toliau nurodytą informaciją ir paspauskite Enter.
mkdir MyFolder && cd MyFolder
Katalogas buvo sėkmingai sukurtas, taigi
cd
komanda buvo įvykdyta, o dabar esame naujame aplanke.
Rekomenduojame didžiąją laiko dalį naudoti loginį "AND operatorių, o ne kablio kabinos" (
;
) Tai užtikrins, kad jūs nieko nepadarytumėte katastrofišku. Pavyzdžiui, jei paleiskite komandą, kad pakeistumėte į katalogą, tada reduktyviai pašalinkite viską šiame kataloge (
cd /some_directory; rm -Rf *
), galėtumėte sugadinti savo sistemą, jei katalogo keitimas nepasitaikė. Ne todėl, kad mes rekomenduojame paleisti komandą, kad besąlygiškai pašalintumėte visus failus kataloge vienu metu.
Trečias variantas: loginis ar operatorius (||)
Kartais galbūt norėsite atlikti antrą komandą tik tuo atveju, jei atliksite pirmąją komandą nepasisekė. Norėdami tai padaryti, mes naudojame loginį OR operatorių arba du vertikalius barus (
||
) Pavyzdžiui, norime patikrinti, ar egzistuoja katalogas MyFolder (
[ -d ~/MyFolder ]
) ir sukurkite, jei ne (
mkdir ~/MyFolder
) Taigi, eilutėje įveskite šią komandą ir paspauskite Enter.
[ -d ~/MyFolder ] || mkdir ~/MyFolder
Įsitikinkite, kad po pirmojo kronšteino yra tarpas ir prieš antrąjį kronšteiną arba pirmoji komanda, kuri patikrina, ar katalogas egzistuoja, neveiks.
Mūsų pavyzdyje katalogas MyFolder neegzistuoja, taigi antroji komanda sukuria katalogą.
Sujungus kelis operatorius
Taip pat galite sujungti kelis operatorius komandinėje eilutėje. Pavyzdžiui, mes pirmiausia norime patikrinti, ar egzistuoja failas (
[ -f ~/sample.txt ]
) Jei taip, mes atspausdinsime pranešimą ekrane, kuriame sakoma, kad taip (
echo “File exists.”
) Jei ne, mes sukursime failą (
touch ~/sample.txt
) Taigi, komandų eilutėje įveskite komandą ir paspauskite Enter.
[ -f ~/sample.txt ] && echo “File exists.” || touch ~/sample.txt
Mūsų pavyzdyje failas neegzistavo, todėl jis buvo sukurtas.
-
A; B
- Vykdyti A ir tada B, nepriklausomai nuo sėkmės ar nesėkmės A
-
A && B
- Vykdyti B, tik jei A pavyko
-
A || B
- Vykdyti B, tik jei A nepavyko
Visi šie komandų derinimo būdai taip pat gali būti naudojami "Linux" ir "Windows 10" operacinės sistemos scenarijose.
Taip pat galite automatiškai ištaisyti rašybą ir rašybos klaidas, kai "Linux" komandinėje eilutėje naudojate "cd", kad derindami komandas išvengtumėte drastiškų padarinių.