2012-11-01 8 views
76

Eventuali duplicati:
Shell script to append text to each file?
How to append output to the end of text file in SHELL Script?bash accodare il contenuto del file alla parte inferiore del file esistente

Sto cercando di capire il modo migliore per inserire i dettagli api in un configurazione preesistente. Ho pensato di usare sed per inserire il contenuto del file di testo api nella parte inferiore del file config.inc. Ho avviato lo script ma non funziona e cancella il file.

#!/bin/bash 

CONFIG=/home/user/config.inc 
API=/home/user/api.txt 

sed -e "\$a $API" > $CONFIG 

Cosa sto sbagliando?

risposta

169

Questo dovrebbe funzionare:

cat "$API" >> "$CONFIG" 

È necessario utilizzare l'operatore >> per aggiungere un file. Il reindirizzamento con > causa la sovrascrittura del file. (Troncato).

+4

Per una stringa singola, usare 'echo' come questo' echo "esporta JAVA_HOME =/usr/lib/jvm/jdk1.8.0_112" >> ~/.bashrc' – shellbye

+0

Perché echo' invece di 'cat'? –

+1

'cat' scrive il contenuto dei file con nome su stdout. 'echo' scrive gli argomenti su stdout. Fanno cose diverse. –