Utilizzo di Regex nelle dichiarazioni dei casi bash

Utilizzo di Regex nelle dichiarazioni dei casi bash
Si dice che l'espressione regolare o il regex siano stringhe alfanumeriche utilizzate per la creazione di query di ricerca. Le espressioni regolari vengono utilizzate come ricerca e sostituti durante la convalida delle condizioni. Regex può essere utilizzato nella programmazione bash o in qualsiasi altro linguaggio di programmazione. Il più delle volte, Regex è utilizzabile nelle dichiarazioni GREP e non nelle dichiarazioni del caso. Questa guida vedrà come funzionano le espressioni regolari con l'istruzione del caso durante l'utilizzo di Ubuntu 20.04 Sistema Linux. È necessario accedere dal sistema prima di andare oltre.

Esempio 01:

Molte volte, gli utenti hanno trovato difficile utilizzare Regex (espressioni regolari) nelle dichiarazioni "caso" perché il "regex" non funziona mai all'interno delle dichiarazioni dei casi. In alternativa, "Grep" è sempre stato utilizzato al posto di una dichiarazione del caso per l'uso di Regex in Bash. Vedremo un semplice esempio per vedere come il Grep e il caso durante l'utilizzo di espressioni regolari. Quindi, apri la console terminale prima di spostarsi ulteriormente tramite il collegamento "Ctrl+Alt+T". Dopo aver aperto il terminale, devi creare un nuovo file bash con la query touch.

$ touch test.sh

Dopo la creazione del file bash, aprilo per aggiungere il codice bash. Per questo, prova la query indicata di seguito.

$ nano test.sh

Il file bash è stato aperto nel "editor GNU". Aggiungi il codice bash mostrato di seguito come è all'interno del file bash. Questo codice discuterà dell'uso di Grep mentre è stata utilizzata un'espressione regolare. Aggiungi prima l'estensione bash. Abbiamo dichiarato una variabile "s" con spazio e stringhe come valore. La prima istruzione Echo visualizza il messaggio che il regex è stato utilizzato con "grep" in questo codice di esempio. Nella riga successiva, abbiamo usato l'istruzione Echo per visualizzare la variabile "S". Mentre il Grep, il comando è stato usato per cercare il testo "Word1" dalla variabile "S", che corrisponde all'espressione regolare indicata nell'immagine. Salva il tuo codice e lascialo tramite "Ctrl+S" e "Ctrl+X" in una riga.

È ora di eseguire il nostro file bash per vedere i suoi risultati. Quindi, abbiamo usato il comando bash per eseguire il file “Test.sh". L'output mostra il risultato di "s" variabili insieme al messaggio "con grep". Ciò indica che il regex funziona perfettamente all'interno delle dichiarazioni GREP.

$ BAST Test.sh

Creiamo lo stesso output per le dichiarazioni dei casi questa volta. Quindi, apri nuovamente il file bash nell'editor usando la query "nano". Aggiungi l'estensione bash e definisci una "s" variabile con un certo valore. Abbiamo usato l'istruzione "eco" per elaborare ora l'utilizzo del caso. Abbiamo avviato l'istruzione del caso durante la ricerca della variabile "s" all'interno dell'espressione regolare definita nel codice. Quando trova la stringa corrispondente, deve stampare la variabile "S" nel terminale. Quindi, l'istruzione del caso è terminata con la parola chiave "ESAC".

Durante l'esecuzione del file bash all'interno del terminale, si scopre che lancia un'eccezione dicendo "Errore di sintassi vicino al token imprevisto in [espressione]". Questo sta semplicemente dimostrando che l'espressione regolare non funziona con l'affermazione del caso.

$ Bash Test.sh

Esempio 02:

Diamo un'occhiata a un altro esempio di espressioni di Bash regolari. Questa volta faremo un'espressione regolare un po 'diversa per esplorare il funzionamento di Regex. D'altra parte, vedremo Regex lavorare all'interno dell'istruzione "if" anziché "Dichiarazione del caso". Quindi, apri il "test.File di Sh ”di nuovo.

$ nano test.sh

Man mano che il file viene aperto ora, abbiamo aggiunto l'estensione bash e utilizzando l'istruzione "if" per avviare la condizione. All'interno dell'istruzione "if", non ci consente di aggiungere un'espressione regolare. Ecco perché abbiamo usato l'espressione “= ~” per istanziare il regex nel codice. In questa condizione, abbiamo aggiunto il regex usando "$" come espressione regolare valida. Quando il carattere aggiunto corrisponde alla condizione di espressione regolare all'interno dell'istruzione "if", deve salvare tale espressione in una variabile "N" e stampare "valido". Se la condizione non soddisfa, deve stampare "non valida" nel terminale e chiudere l'istruzione "if". Basta salvare il file dal collegamento "Ctrl+S" e lasciare l'editor di "Ctrl+X".

Ora, tornando al terminale, abbiamo provato la dichiarazione di esecuzione di bash per eseguire il file "Test.Sh "tre volte analizzando alcuni personaggi e simboli. Questa volta abbiamo aggiunto i personaggi @, #e f. Tutti i personaggi sono stati dichiarati "non validi" secondo il codice bash. Questo perché abbiamo usato l'espressione regolare per prendere "$" solo come valido.

$ Bash Test.sh

Prendiamo "$" questa volta all'interno della query di esecuzione per testare come funziona. Si scopre che "$" è un'espressione valida e stampa l'uscita "valida" all'interno della console shell.

$ Bash Test.sh

Esempio 03:

Diamo un esempio diverso e semplice di usare l'espressione regolare all'interno dell'istruzione del caso. Ancora una volta, apriamo il test ".File sh "all'interno dell'editor di Ubuntu 20.04 Sistema.

$ nano test.sh

Come test.Il file SH Bash è stato lanciato all'interno della GNU Nano 4.8 Editor del terminale, aggiungi l'estensione bash all'inizio di un file. Successivamente, abbiamo utilizzato l'istruzione "Leggi" con il flag "-P" per prendere input come nome del server dall'utente. Questo nome del server come input verrebbe salvato nella variabile "server". Questo server deve essere un URL del server di dominio. Ora utilizzeremo qui la dichiarazione del caso per testare l'espressione regolare. Quindi, abbiamo avviato l'istruzione Case con il server variabile per verificare se il dominio del server di input aggiunto corrisponde alle altre istruzioni menzionate all'interno dell'istruzione del caso o no. Quando il valore "server" variabile corrispondeva al WS*[email protected], utilizzerà l'istruzione Echo per visualizzare che questo dominio è "Web Server". Se corrisponde a db*[email protected], utilizzerà l'istruzione "Echo" per visualizzare che il server è un "server DB". Se il dominio è BK*[email protected], mostra il "server di backup". Altrimenti, visualizzerà che il server è sconosciuto. L'asterisco rappresenta il regex. Successivamente, l'istruzione Case sarà chiusa dalla parola chiave "ESAC" nello script. Salva questo codice ed esci utilizzando le stesse scorciatoie "ctrl+s" e "ctrl+x".

Ora tornando al terminale, testamo questo codice bash eseguendo il comando bash con il nome di un test.file sh. Dopo l'esecuzione, chiede all'utente di aggiungere il nome utente. Abbiamo aggiunto un nome server "WS" valido con 1234 come regex e pressato. Mostra che la sintassi del server corrisponde al "server web".

Abbiamo fatto un'altra esecuzione e questa volta abbiamo cambiato la sintassi di un server. Poiché il punto è stato perso dall'URL del dominio, visualizza che il server è sconosciuto.

Quando abbiamo aggiunto un dominio simile e corretto, visualizza il nome di un server.

Conclusione:

All'interno di questo tutorial, abbiamo discusso di come utilizzare una dichiarazione del caso in Bash per utilizzare espressioni regolari. Speriamo che questo articolo ti abbia aiutato al meglio per eliminare i dubbi e le complicazioni.