Pesquisa de site

O que é IFS em scripts Bash?


O IFS no bash é útil quando você está lidando com um delimitador diferente do espaço, tabulação ou nova linha normal.

Ao fazer scripts Bash ou simplesmente codificar em seu servidor Linux por meio de sua linha de comando, a flexibilidade que o Linux pode oferecer é notável.

IFS ou Separador de Campo Interno, é apenas uma maneira simples de dizer ao sistema (ou mais especificamente, à sessão de terminal atual) para considerar um símbolo ou caractere específico em seu separador de campo. Isso permite, dentro de um script bash, fazer o sistema funcionar com um determinado caractere como seu separador.

Por padrão, o IFS no bash e em muitos outros shells são espaço, tabulação e nova linha. Mas você pode especificá-lo explicitamente em seu script bash e alterá-lo conforme sua necessidade.

Como o IFS pode ser útil?

Bem simples! Digamos que você esteja trabalhando com arquivos de valores separados por vírgula (CSV) e queira usar um script para poder ler esse arquivo e poder trabalhar com seus dados.

Como você sabe, cada "," vai separar os campos ou dados importantes contidos neste arquivo. Portanto, é isso que você precisa informar ao sistema.

Vamos fazer um exemplo bem simples, onde temos um arquivo: clients.csv, que contém Nome, Sobrenome, Idade e País:

IFS=","
while read -r field1 field2 field3 field4; do
   echo "First Name: $field1"
   echo "Last Name: $field2"
   echo "Age: $field3"
   echo "Country: $field4"
done < clients.csv

Este script irá ler esse arquivo, entendendo que "," é o separador de campos, e armazená-lo em variáveis através do arquivo e produzi-las com o respectivo nome do campo.

Aqui está um exemplo de execução do cenário acima com um arquivo csv de amostra:

Tornando-o persistente

Talvez você prefira que esse IFS seja alterado de forma persistente, e não apenas para a sessão de terminal atual. Nesse caso, você precisará definir o valor do IFS em seu “.bashrc ” ou “. bash_profile ” arquivo.

Conclusão

O Linux é tão poderoso e flexível que permite controlar coisas como a forma como os campos são separados e usar um caractere comum para poder trabalhar com seus scripts.

Usando IFS para definir esse caractere dependendo do objetivo que você deseja perseguir com seu script. Ele permite que você execute scripts que podem fazer coisas como selecionar diferentes partes de suas entradas e massagear seus dados para simplesmente trabalhar com eles, criar novos arrays e inúmeras outras coisas.

Espero que você goste deste pequeno artigo rápido sobre IFS no bash shell. Deixe-me saber se você ainda tiver alguma dúvida ou sugestão.

Artigos relacionados: