RSS
 

Archive for the ‘Shell’ Category

Ejetando CDs ou DVDs presos em seu Mac

09 jan

Eventualmente CDs e DVDs (mídias) danificados ficam presos no drive de um Mac e este não consegue ejetá-los.

Isto acontece porque o Mac OS X fica tentando ler as mídias e não consegue. Enquanto ele ficar tentando, ele não ejeta a mídia. Já me ocorreram algumas vezes, principalmente após uma sessão de gravação mal sucedida por conta de mídia de baixa qualidade ou riscada.

Fuçando na interwebs encontrei os comandos abaixo que podem ser utilizados para resolver este problema, sem precisar reiniciar o Mac.

Abra o Terminal e digite os comandos a seguir:

$ drutil open
$ drutil eject

Após alguns segundos a mídia será cuspida para fora do drive. ;-)

 
1 Comment

Posted in Apple, Shell

 

Separadores no Bash

02 nov

Quantas vezes já foi obrigado a refazer um script em outra linguagem quando se deparou com um for que recebia valores com espaços e não sabia como resolver isto diretamente no Bash?

Eu mesmo já fiz isto algumas vezes. Mesmo quando sabia que era possível consertar o problema no próprio Bash eu acabava partindo para o novo script pois encontrava um pouco de dificuldade de encontrar documentação sobre isto. O manual do Bash não ajuda muito na forma correta de se configurar a variável IFS.

IFS (Internal Field Separator) é uma variável que permite configurar quais são os caracteres que o Bash considera serem separadores de campos. E é com o IFS que o loop for sabe separar os itens dentro de uma string ou dentre várias linhas.

O IFS padrão é configurado para separar campos com espaços, tabulações e linhas.

Para alterar o valor do IFS para não separar campos com espaços, basta utilizar o comando abaixo:

export IFS=$'\t\n'

Agora quando quiser efetuar alguma tarefa numa lista de arquivos que tem espaços em seu nome, não terá problemas. Veja o exemplo:

export IFS=$'\t\n'
for f in `ls -1`
do
    echo $f
done