(61) 3223-3000

Fale conosco

 


	$ texto=eu:uso:linux
	$ for i in $texto
	> do
	> echo $i
	> done

Sem a variavel IFS= definida, a saída acima seria esta:


	eu:uso:linux

Agora se definirmos a variável IFS com um valor de “:” por exemplo:


	$ IFS=:
	$ for i in $texto
	> do
	> echo $i
	> done

A saída será:


	eu
	uso
	linux

Ou seja um caractere nessa variável passa a operar como um delimitador, a utilidade prática disto pode ser observada quando precisamos separar algum fluxo de texto especifico que pode vir de um arquivo previamente preenchido e com seus campos separados por um delimitador, que pode ser qualquer caractere definido para IFS (incluindo um TAB). Abaixo segue um pequeno script de exemplo de utilização de IFS=, que utiliza como entrada o arquivo /etc/passwd e mostra seus dados de maneira ordenada :


	Passwd()
	{
	echo “Nome do Usuario: $1″
	echo “Senha: $2”
	echo “Uid: $3″
	echo “Gid: $4″
	echo “Comentários: $5”
	echo “Diretório home: $6”
	echo “Shell padrão: $7”
	}
	IFS=’:'  # variável IFS definida
	while read nome senha uid gid comentario home shell_padrao
	do
	Passwd “$nome” “$senha” “$uid” “$gid” “$comentario” “$home” “$shell_padrao”
	done

Copie o script acima e salve com o nome de password.sh (ou outro nome de sua preferência) e então rode-o passando o /etc/passwd como entrada:


	$ ./password.sh < /etc/passwd

Se tudo correu bem ele deverá exibir uma lista com todos os usuários do sistema e todos os seus dados na ordem do /etc/passwd. Bom isso é tudo espero que tenham gostado até o próximo post…

Facebook

Twitter

Redes Sociais