Комбинирането на две или повече команди в командния ред е известно също като "команда за верига". Ще ви покажем различни начини, по които можете да комбинирате команди в командния ред.
Вариант Първа: Операторът на точка и запетая (;)
Операторът на точка и запетая ви позволява да изпълнявате последователно няколко команди, независимо от това дали всяка предишна команда е успешна. Например, отворете прозореца на терминала (Ctrl + Alt + T в Ubuntu и Linux Mint). След това въведете следните три команди на един ред, разделени с точка и запетая и натиснете Enter. Това ще ви даде списък на текущата директория (
ls
), разберете коя директория в момента сте в (
pwd
) и да се показва вашето потребителско име (
whoami
) всичко наведнъж.
ls; pwd; whoami
Не е нужно да поставяте интервали между точка и запетая и командите. Можете да въведете трите командата като
ls;pwd;whoami
Пространствата обаче правят комбинираната команда по-четивна, което е особено полезно, ако въвеждате комбинирана команда в скрипт на shell.
Вариант Втори: Логическият И оператор (&&)
Ако искате втората команда да се изпълнява само ако първата команда е успешна, разделете командите с логически оператор AND, който е два амперсанди (
&&
). Например, ние искаме да направим директория, наречена MyFolder и след това да променим тази директория, при условие че тя е създадена успешно. Затова въведете следното на командния ред и натиснете Enter.
mkdir MyFolder && cd MyFolder
Папката бе създадена успешно, така че
cd
командата бе изпълнена и сега сме в новата папка.
Препоръчваме да използвате по-скоро логическия оператор AND, а не този на точка и запетая (
;
). Това гарантира, че не правите нищо катастрофално. Например, ако изпълнявате команда за промяна на директория и след това принудително премахнете всичко в тази директория рекурсивно (
cd /some_directory; rm -Rf *
), може да доведе до разрушаване на системата, ако промяната в директорията не се е случила. Не че препоръчваме да изпълнявате команда, за да премахнете безусловно всички файлове в директория наведнъж.
Трети вариант: Логическият оператор OR (||)
Понякога може да искате да изпълнявате втора команда само ако първата команда се изпълнява неуспее. За целта използваме логически OR оператор или две вертикални ленти (
||
). Например, искаме да проверим дали директорията MyFolder съществува (
[ -d ~/MyFolder ]
) и да го създадете, ако не го направи (
mkdir ~/MyFolder
). Затова въведете следната команда на промпта и натиснете Enter.
[ -d ~/MyFolder ] || mkdir ~/MyFolder
Уверете се, че има интервал след първата скоба и преди втората скоба или първата команда, която проверява дали директорията съществува, няма да работи.
В нашия пример директорията MyFolder не съществува, така че втората команда създава директорията.
Комбиниране на няколко оператора
Можете също да комбинирате няколко оператора на командния ред. Например, първо искаме да проверим дали файлът съществува (
[ -f ~/sample.txt ]
). Ако това се случи, ще отпечатаме съобщение на екрана, казвайки така (
echo “File exists.”
). Ако не, създаваме файла (
touch ~/sample.txt
). Така че, напишете следното в командния ред и натиснете Enter.
[ -f ~/sample.txt ] && echo “File exists.” || touch ~/sample.txt
В нашия пример файлът не съществува, така че той е създаден.
-
A; B
- Run A и след това B, независимо от успеха или неуспеха на A
-
A && B
- Бягайте само ако A е успял
-
A || B
- Бягайте само ако A не е успешно
Всички тези методи за комбиниране на команди могат да се използват и в скриптове на черупки както на Linux, така и на Windows 10.
Можете също така автоматично да коригирате правописа и печатни грешки, когато използвате "cd" на командния ред в Linux, за да избегнете драстични последствия при комбиниране на команди.