Como criar um arquivo e inserir uma linha nele usando o terminal OS X

20

Como posso fazer o seguinte usando o terminal no OS X?

Crie um arquivo chamado .inputrc no diretório pessoal de um usuário e coloque esta linha:

set completion-ignore-case On

    
por GGbro 14.03.2014 / 00:38

2 respostas

25

Resposta rápida

touch ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

Explicação

Primeiro, crie o arquivo:

touch ~/.inputrc

Em seguida, adicione o conteúdo ao arquivo:

echo "set completion-ignore-case On" >> ~/.inputrc

touch cria um arquivo vazio (supondo que o arquivo ~/.inputrc ainda não exista). echo grava o texto na "saída padrão" ("stdout" para resumir), que normalmente é sua tela, mas por causa do redirecionamento ( >> ), a saída é redirecionada para ~/.inputrc . Esta configuração anexará a linha ao arquivo.

Se ~/.inputrc já existir e você quiser apagar (clobber) seu conteúdo, e então escrever a linha nele (ou seja, criar um arquivo com somente neste linha de texto), faça:

echo "set completion-ignore-case On" > ~/.inputrc

A seta única ( > ), também conhecida como símbolo "maior que", informa a echo para criar um arquivo com apenas o texto fornecido como o conteúdo do arquivo, em vez de gravar o conteúdo no final do arquivo . (Na verdade, echo não cria o arquivo; o shell cria o arquivo, descartando qualquer conteúdo existente, e o comando echo grava o novo conteúdo.)

Se você usa a primeira abordagem (com >> ) e descobre que a linha que você adicionou é preenchida na linha anterior, por exemplo,

some stuff here
some more stuff hereset completion-ignore-case On

você precisa editar o arquivo para corrigi-lo. Isso aconteceria se a última linha do arquivo preexistente terminasse com um caractere textual em vez de um caractere de "nova linha" (ou seja, um marcador de fim de linha). Isso é comum para arquivos .TXT no Windows, mas são raros em * nix.

Se você perceber de antemão que seu arquivo .inputrc tem conteúdo pré-existente que não termina com uma nova linha, então você deve usar essa declaração echo :

echo -e "\nset completion-ignore-case On" >> ~/.inputrc

O \n antes da frase é interpretado como um caractere de nova linha, portanto, uma nova linha é adicionada após o conteúdo anterior e antes do novo material que você deseja adicionar.

Ou, um pouco mais de digitação, mas muito mais legível,

echo "" >> ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

ou

(echo ""; echo "set completion-ignore-case On") >> ~/.inputrc

que fazem a mesma coisa; isto é, forneça o caractere de nova linha ausente ao texto existente e adicione o comando set completion-… depois disso.

    
por 14.03.2014 / 00:50
1

Tudo o que você precisa fazer é:

echo "set completion-ignore-case On" >> ~/.inputrc 

echo simplesmente ecoa o texto dado a ele através do canal de saída normal (stdout)

o >> escreve a saída stdout do comando da esquerda no arquivo da direita, que no seu caso é ~/.inputrc

~/ é o mesmo que /home/your_username/

    
por 14.03.2014 / 00:53