Bene, sono un novellino di Linux e sto riscontrando un problema con un semplice script di bash.Aggiunta data e ora a un nome file con mv in BASH
Ho un programma che si aggiunge a un file di registro mentre è in esecuzione. Nel corso del tempo il file di registro diventa enorme. Mi piacerebbe creare uno script di avvio che rinomina e sposta il file di registro prima di ogni esecuzione, creando in effetti file di registro separati per ogni esecuzione del programma. Ecco quello che ho finora:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
Quando viene eseguito, vedo questo:
: command not found
program
Quando I cd alla directory registri e corrono dir, vedo questo:
201111211437\r.log\r
Cosa sta succedendo? Presumo che manchi qualche problema di sintassi, ma non riesco a capirlo.
UPDATE: Grazie a Shellter di commento qui sotto, ho trovato il problema sia dovuto al fatto che sto modificando il file .sh in Notepad ++ in Windows, e quindi l'invio via ftp al server, dove eseguo il file tramite ssh. Dopo aver eseguito dos2unix sul file, funziona.
Nuova domanda: come posso salvare il file correttamente, in primo luogo, per evitare di dover eseguire questa correzione ogni volta che rinvio il file?
'\ R' è carriage_return, esaminare lo script bash, forse è incluso all'interno dello script – ajreal
Da dove arriverà quella retata? Sto indovinando che qualcosa su 'logs/$ DATE.log' è sbagliato, ma digitando' echo logs/$ DATE.log' restituisce il percorso corretto. – Cat5InTheCradle
come lo saprei? si prega di allegare lo script di bash corrispondente, probabilmente ci sono spazi vuoti invisibili – ajreal