Come creare un file e inserire una linea in esso usando il terminale OS X.


22

Come posso fare quanto segue usando il terminale su OS X?

Crea un file chiamato .inputrcnella home directory di un utente e inserisci questa riga:

set completion-ignore-case On

Risposte:


31

Risposta rapida

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

Spiegazione

Innanzitutto, crea il file:

touch ~/.inputrc

Quindi, aggiungi i contenuti al file:

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

touchcrea un file vuoto (presupponendo che il ~/.inputrcfile non esista già). echoscrive il testo nello "output standard" ("stdout" in breve), che normalmente è lo schermo, ma a causa del reindirizzamento ( >>), l'output viene reindirizzato a ~/.inputrc. Questa configurazione aggiungerà la linea al file.

Se ~/.inputrcesiste già e si desidera cancellare (clobber) il suo contenuto, quindi scrivere la riga al suo interno (ovvero creare un file con solo questa riga di testo), fare:

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

La singola freccia ( >), nota anche come simbolo "maggiore di", indica echodi creare un file con solo il testo dato come contenuto del file, anziché scrivere il contenuto alla fine del file. (In realtà, echonon crea il file; la shell crea il file, scartando qualsiasi contenuto esistente e il echocomando scrive il nuovo contenuto.)


Se usi il primo approccio (con il >>) e scopri che la linea che hai aggiunto è sfumata sulla linea precedente, ad es.

alcune cose qui
alcune altre cose qui impostano il completamento-ignore-case su

quindi è necessario modificare il file per risolverlo. Ciò accadrebbe se l'ultima riga del file preesistente si concludesse con un carattere testuale anziché con un carattere "newline" (ovvero un indicatore di fine riga). Questo è comune per i .TXTfile su Windows, ma raro su * nix.

Se in qualche modo ti rendi conto in anticipo che il tuo .inputrcfile ha contenuti preesistenti che non terminano con una nuova riga, dovresti invece usare questa echoaffermazione:

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

La \nfrase prima viene interpretata come un carattere di nuova riga, quindi una nuova riga viene aggiunta dopo i contenuti precedenti e prima delle nuove cose che si desidera aggiungere.

O, leggermente più digitando ma molto più leggibile,

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

o

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

che fanno la stessa cosa; ad esempio, fornire il carattere di nuova riga mancante al testo esistente, quindi aggiungere il set completion-…comando dopo quello.


1
Non c'è motivo di usare il touchcomando qui; echo "…" >> ~/.inputrcè abbastanza.
G-Man dice "Reinstate Monica"

1
A meno che il file che si desidera aggiungere non sia esistente.
amrx,

@Baron: No, echo "…" >> ~/.inputrccreerà il file se non esiste. Ad eccezione dei casi patologici, come ~non esiste, non si dispone dell'autorizzazione di scrittura ~o il file system è pieno; e, in questi casi, touchnon aiuterà.  touchè completamente superfluo qui.
G-Man dice "Reinstate Monica"

4

Tutto quello che devi fare è:

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

echo echi semplicemente il testo che gli è stato dato attraverso il normale canale di output (stdout)

l' >>scrive l'uscita stdout dal comando mano sinistra per il file mano destra, che nel tuo caso è~/.inputrc

~/ equivale a /home/your_username/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.