Cumu usu di e prupositu di e dispusizioni in un script Bash

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:

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:

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:

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:

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

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