Programmazione BASH

Come usare $IFS in Bash?

Come usare $IFS in Bash?
Nello scripting, dobbiamo rompere i dati della stringa per una serie di motivi. Split è una funzionalità integrata in molti linguaggi informatici che divide ogni stringa di dati in vari pezzi. Tuttavia, bash non ha una funzionalità integrata per dividere una stringa. Per rompere qualsiasi valore di stringa, ci sono molti delimitatori singoli e composti da usare. Viene utilizzata una variabile IFS (Internal Field Separator) per specificare un particolare delimitatore per la divisione di stringhe. In questa guida imparerai come utilizzare vari metodi per illustrare il processo di rottura di un valore stringa in bash usando $IFS.

Prerequisiti

Assicurati di avere installato e configurato il sistema basato su Linux. Lavoreremo su Ubuntu 20.04 Sistema Linux. Accedi dal tuo account utente Ubuntu per iniziare a lavorare su IFS. Sarà meglio se accedi dal tuo account utente root. Dopo aver effettuato l'accesso, avvia il terminale della riga di comando nel tuo sistema dall'area Attività.

Esempio 01: IFS divide una stringa usando lo spazio come valore

Per il nostro primo esempio, capiremo il concetto di dividere una stringa in bash usando lo spazio come valore delimitatore usando la variabile IFS. Per prima cosa, dobbiamo creare un file bash nel nostro sistema. Possiamo creare nuovi file nel nostro sistema Linux usando il comando 'touch'. Come mostrato di seguito, abbiamo creato un file bash 'file1'.sh' usando l'istruzione 'touch':

$ tocca file1.sh

Apri la directory Home del tuo sistema Linux usando l'icona della cartella visualizzata nell'angolo sinistro di Ubuntu 20.04 desktop. Troverai il tuo file bash appena creato "file1.sh" in esso. Apri il file “file1.sh" e digita lo script sottostante. Per prima cosa, abbiamo definito una stringa denominata "str" ​​con un valore di stringa al suo interno. Quindi, definiamo una variabile delimitatrice IFS come una variabile avente spazio come valore. Successivamente, abbiamo utilizzato l'istruzione read per salvare e leggere i dati divisi in un array "strarr" utilizzando il flag "-a". Un'istruzione 'echo' viene utilizzata per stampare una riga di stringa insieme al conteggio delle parole totali di un array utilizzando "$#strarr[*]". Il ciclo "for" viene utilizzato per stampare i valori di un array in forma divisa utilizzando la variabile "var". La barra rovesciata "\n" è stata utilizzata all'interno della riga di stampa insieme alla variabile "var" per fornire un'interruzione di una riga dopo ogni valore dell'array. Salva lo script usando il tasto "Ctrl+S" e chiudi il file per procedere ulteriormente.

Torna al lato terminale. Ora controlleremo l'output del codice sopra above. Per questo, useremo il comando 'bash' insieme al nome di un file "file1.sh" per eseguirlo che è mostrato di seguito. Innanzitutto, ha visualizzato la riga menzionata nell'istruzione "echo" insieme al conteggio delle parole di un array. Successivamente, ha visualizzato tutti i valori dell'array utilizzando il ciclo "for" diviso da IFS.

$ bash file1.sh

Esempio 02: IFS divide una stringa usando il carattere come valore

Nell'esempio sopra menzionato, hai visto come dividere le variabili stringa in parti usando lo spazio come delimitatore di IFS. Ora useremo un carattere per dividere una stringa usando un delimitatore IFS. Apri il tuo terminale di comando e crea un nuovo file bash "file2.sh" nella tua home directory del sistema Linux usando il comando "touch" come segue:

$ tocca file2.sh

Apri la home directory del tuo sistema Linux. Troverai il tuo file appena creato in esso. Apri il file appena creato e scrivi il codice bash presentato di seguito. Sulla riga 3, abbiamo avviato un'istruzione "echo" per stampare una riga. La riga successiva legge l'input fornito da un utente in un terminale utilizzando la parola chiave "read". Successivamente, abbiamo definito il delimitatore "IFS" e impostato la virgola "", come valore del carattere. È stata specificata un'altra istruzione "read" per leggere e salvare i valori di suddivisione della virgola di una stringa immessa da un utente in un array "strarr". Alla fine, abbiamo avviato tre istruzioni echo per stampare i valori di divisione separati da virgole come variabili come mostrato nell'immagine. Salva e chiudi questo file.

Ora dobbiamo eseguire questo file salvato. Esegui il comando bash mostrato di seguito seguito dal nome di un file in un terminale per farlo. Devi aggiungere un valore di stringa che deve contenere la virgola "", all'interno dei valori e premere il pulsante Invio. Ora i tuoi dati sono stati salvati in un array "strarr". Le ultime tre righe mostrano l'output delle istruzioni "echo". Puoi vedere, ogni testo prima e dopo la virgola è stato usato come valore separato.

$ bash file2.sh

Esempio 03: IFS Split String

Abbiamo fatto entrambi gli esempi precedenti in un file bash. Ora avremo un'illustrazione dell'uso di "IFS" senza creare un file bash. Apri la shell dei comandi per farlo. Per prima cosa, dobbiamo creare una stringa "var" con un valore stringa in essa. Questa stringa contiene virgole dopo ogni parola.

$ var="Ciao, ho 25 anni, vecchio."

Quindi, inizializza la variabile 'IFS' con il carattere virgola come valore delimitatore.

$ IFS=,

Successivamente, abbiamo utilizzato il ciclo "for" per cercare ogni parola dalla variabile "var" separata da una virgola delimitatore IFS e stamparla utilizzando l'istruzione "echo".

$ per i in $var
> fare
>eco [$i]
>Fatto

Avrai l'output qui sotto. Mostrerà ogni parola di una variabile stringa "var" in una nuova riga a causa della virgola delimitatore "", usata come carattere diviso.

Conclusione:

In questa guida, hai imparato una varietà di metodi per dividere i valori di input in una bash, e.g., con uno spazio o con un carattere. Speriamo che le illustrazioni menzionate in questa guida tutorial ti aiutino a spezzare ogni stringa usando il delimitatore IFS.

Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...