U cumandamentu di testi pò esse usatu in a linia di cummandu di Linux per paragunà un elementu à l'altru ma hè più comunmente utilizatu in scrittura di scaphandre di BASH in parte di stipule condicionale chì cuntrolanu lògica è u flussu di u prugramma.
Un esempiu basu
Pudete pruvà sta cumanda semplice per apre a finestra di terminal .
test 1 -eq 2 && echo "sì" || echo "no"
U cumandimu cumandalla pò esse analizate cum'è manera:
- teste - questu significa chì avete da fà cumpagnia
- 1 - u primu elementu chì vi puderete paragunà
- -eq (cumu si compareu, in stu casu, pruvate si un nummiru equivalenti à l'altru)
- 2 - L'elementu chì si compara u primu elementi novu
- && - dirighjite a strada dopu se u risultatu hè veru
- Eccu "sì" - u cumandimu cume si a cumpara torna veramente
- || - scorri la strada dopu se u risultatu hè falu
- Ecu "no" - u cumandimu per run si a cumparazione torna falza
In esencia, u cumandimu è paragunà à 1 à 2 è fate cù l'esicuzzioni "sì" si pò esse realizatu chì mostra "sì" è se ùn anu micca cù l'eccu "nè" affirmazioni hè esercitu chì mostra "non".
Comparare Numbers
Sè truvendu l'elementi chì parse in numeru pò pudete utilizà l'operatorii di paraguni chì seguenu:
- -eq - ùn valore 1 uguali valuru 2
- -ge - hè un valore 1 più grande o à u valore 2
- -gt - hè u valore 1 più grande ca u valore 2
- -le - hè un valore 1 di menu o equivalenti à u valore 2
- -lt - hè u valore 1 solu u valore 2
- -ne - valuta 1 ùn hè micca valore uguale 2
Esempii:
test 1 -eq 2 && echo "sì" || echo "no"
(exhibisce "nè" à u screnu perchè 1 ùn hè micca ugguali 2)
test 1 -ge 2 && echo "sì" || echo "no"
(dispunibule "nè" à u screnu perchè 1 ùn hè più u più grande o uguali à 2)
test 1 -gt 2 && echo "sì" || echo "no"
(exhibisce "nè" à u screnu perchè 1 hè micca più grande que 2)
test 1 -le 2 && echo "sì" || echo "no"
(mostra "sì" à u screnu perchè 1 hè menu o di uguali à 2)
test 1 -lt 2 && echo "sì" || echo "no"
(mostra "sì" à u screnu perchè 1 hè menu o di uguali à 2)
test 1 -ne 2 && echo "sì" || echo "no"
(mostra "sì" à u screnu perchè 1 ùn hè micca ugguali 2)
Pruduzzioni di Comparazione
Sè truvendu l'elementi chì parse com'è strings pudete aduprà l'operatore di cumpramentu seguenti:
- = - fa string 1 match string 2
- ! = - hè stringe 1 difeite à string 2
- -n - hè a string length mayor than 0
- -z - hè a string length 0
Esempii:
test "string1" = "string2" && echo "sì" || echo "no"
(mostra "non" in a pantalla perchè "string1" ùn hè micca ugguali "string2")
test "string1"! = "string2" && echo "sì" || echo "no"
(mostra "sì" à a pantalla perchè "string1" ùn hè micca ugguali "string2")
test -n "string1" && echo "sì" || echo "no"
(mostra "sì" à u screnu perchè "string1" hà una statua larga più grande que cero)
test -z "string1" && echo "sì" || echo "no"
(exhibisce "nè" à u screnu perchè "string1" hà una statua larga più grande que cero)
Comparative Files
Se si cuntene i vostri schedari, pudete aduprà l'operatore di cumpramentu seguenti:
- -ef - Fate i schedari sò u stessu dispositu è numeri inode (sò quì u stessu schedariu)
- -nt - Hè u primu schedariu più novu chì u second file
- -ot - Hè u primu schedariu più vechje di u second file
- -b - U schedariu esiste è si trovi spiciale
- -c - U schedariu esiste è hè un caratteru specialu
- -d - U schedariu esiste è hè un direttu
- -e - U schedariu esiste
- -f - U schedariu esiste è hè un schedariu regulare
- -g - U schedariu esiste è hà u numaru di gruppu specìtu
- -G - U schedariu esiste è u patrone di u gruppu d'utilizatori
- -h - U schedariu esiste è hè un ligame simbolicu
- -k - U schedariu esiste è hà stallatu u so pocu peggy
- -L - U listessu chì -h
- -O - U vostru esistiu esse u patrone
- -p - U schedariu esiste è hè un pipìgiu chjamatu
- -r - U schedariu esiste è pò leghjite
- -s - U schedariu esiste è hà una dimensione più grande ca cero
- -S - U schedariu esiste è hè un socket
- -t - U file descriptor hè apertu nantu à una terminal
- -u - U schedariu esiste è l'oghjettu di l'utté set-user hè stituitu
- -w - U schedariu esisti è hè scrittu
- -x - U schedariu esiste è hè eseguitu
Esempii:
test / path / to / file1 -n / path / to / file2 && echo "sì"
(Se file1 hè più novu chì file2, averà esse a parolla "sì".
test -e / path / to / file1 && echo "sì"
(se file1 esiste a parolla "sì" serà presentata)
test -O / path / to / file1 && echo "sì"
(siddu stessu propiu file1 aduprate a parulla "sì" hè indicatu ")
Terminologia
- Pezzu speziale - U schedariu hè un pezzu di u bloque chì significa chì e dati si leghje in blocchi di bytes. Questi sò in generale centu per u discu di u dispusitivu cum'è i discu duru
- Carattere speziale - U schedariu hè fattu accusà quand'elle anu scrittu à l'usu è hè cumunamenti un dispositivu cum'è un portu serjali
Comparare Variable Conditions
Questu tuttu hè statu paragunà una cosa cù l'altru, ma chì si vulete cumprarà dui cundizioni.
Per esempiu, si un animali hà 4 ori e vai "moo" hè probabbilmente una vacca. Simply checking for 4 legs ùn guarantisci chì avete una vacca, ma cuntrollanu u sonu ùn hè sicura.
Per pruvà dui cundizioni à a so ghjucazione utilizate a seguente straghju:
test 4 -eq 4 -a "moo" = "moo" && echo "hè una vacca" || Ecu "ùn hè micca una vacca"
A parte craveru quì hè a -a chì ferma è.
Ci hè un modu megliu utilizatu per esse realizatu a stessa prova è questu hè stallatu:
test 4 -eq 4 && test "moo" = "moo" && echo "hè una vacca" || Ecu "ùn hè micca una vacca"
Un altru teste chì pudete fà vulete fà è compara dui stanzi è s'ellu hè o veru un quatru. Per esempiu, sè vo vulete verificà chì un schedariu chjamatu "file1.txt" hè esiste o un schedariu chjamatu "file1.doc" hè esiste chì pudete utilizà u cumandimu cumpostu
test -e file1.txt -o -e file1.doc && echo "file1 exists" || Ecu "file1 does not exist"
A parte magica hè u-o chì ferma o.
Ci hè un modu megliu utilizatu per esse realizatu a stessa prova è questu hè stallatu:
test -e file1.txt || test -e file1.doc && echo "file1 exists" || Ecu "file1 does not exist"
Eliminazione A Test Keyword
Ùn avete micca bisognu di usà a prova di parolle per fà a cumparazione. Tuttu ciò chì deve fà fà aghjunghje l'affirmazioni in parolle chjorni sece seguenti:
[-e file1.txt] && echo "file1 exists" || Ecu "file1 does not exist"
U [è] basamenti significheghja u listessu chì teste.
Avà sapè questu pudete migliurà adupandu moltu cundizioni cumu:
[4 -eq 4] && ["moo" = "moo"] && echo "hè una vacca" || Ecu "ùn hè micca una vacca"
[-e file1.txt] || [-e file1.doc] && echo "file1 esiste" || Ecu "file1 does not exist"
Resumen
U cumandamentu di testa hè più utile in scrittura perchè pudete pruvà u valore d'una valeta contra l'altru è di u flussu di u prugramma di cuntrollu. In a linea di cummanda standard, pudete aduprà per pruvà un esistenti o un esistenti