Quando efetuamos um for em shellscript, por padrão ele considera como delimitador espaços, quebras de linha ou tabulações, isso gera uma dor de cabeça quando temos que tratar nomes e arquivos ou diretórios com espaços.
Para melhor compreensão, abaixo temos um diretório com três arquivos:
felipebraz@localhost:~/teste$ ls -l total 0 -rw-rw-r-- 1 felipebraz felipebraz 0 Abr 19 15:41 1.html -rw-rw-r-- 1 felipebraz felipebraz 0 Abr 19 15:41 teste2.html -rw-rw-r-- 1 felipebraz felipebraz 0 Abr 19 15:41 teste de arquivo.html
Ao efetuarmos um for, ele vai quebrar o último arquivo nos espaços, retornando 5 registros ao invés de 3.
felipebraz@localhost:~/teste$ for i in `ls`; do echo $i; done 1.html teste2.html teste de arquivo.html
Para solucionar essa questão, podemos utilizar a variável IFS
para definir qual caractere deve ser usado como delimitador.
felipebraz@localhost:~/teste$ IFS="\n" felipebraz@localhost:~/teste$ for i in `ls`; do echo $i; done 1.html teste2.html teste de arquivo.html
Depois que comprei os roteadores ax3000t e finalmente consegui instalar o openwrt neles. Agora chegou…
A criação e validação de credenciais seguras em ansible sempre gera um pouco de dor…
Dia desses, um dos meus servidores entrou com o sistema de arquivos / em modo…
O launcher do ubuntu não fornece muitas opções me relação aos icones, muitas vezes apps…
Três meios diferentes para a mesma finalidade: Usando funções nativas do PHP (recomendado): array_multisort(array_map('strlen', $array),…
Embora um script muito útil para tarefas de inicialização de um servidor, essa funcionalidade se…