Le poche righe che hai pubblicato dalla tua sceneggiatura mi sembrano a posto. Probabilmente è qualcosa di un po' più profondo.
Devi trovare quale linea ti sta dando questo errore. Aggiungi set -xv
all'inizio del tuo script. Questo stamperà il numero di riga e il comando eseguito su STDERR . Questo ti aiuterà a identificare dove nel tuo script stai ricevendo questo particolare errore.
A proposito, hai uno shebang all'inizio della tua sceneggiatura? Quando vedo qualcosa del genere, normalmente mi aspetto che sia un problema con Shebang. Ad esempio, se avessi #! /bin/bash
in alto, ma il tuo interprete bash si trova in /usr/bin/bash
, vedrai questo errore.
MODIFICA
Nuova domanda:come posso salvare il file correttamente in primo luogo, per evitare di dover eseguire questa correzione ogni volta che invio nuovamente il file?
Due modi:
- Seleziona Modifica->Conversione EOL->Formato Unix voce di menu quando si modifica un file. Una volta che ha le terminazioni di riga corrette, Notepad++ le manterrà.
- Per assicurarti che tutti i nuovi file abbiano le terminazioni di riga corrette, vai a Impostazioni->Preferenze voce di menu e apri le Preferenze la finestra di dialogo. Seleziona Nuovo documento/directory predefinita scheda. In Nuovo documento e Formato , seleziona Unix pulsante radio. Fai clic su Chiudi pulsante.
Uso questo comando per ruotare semplicemente un file:
mv output.log `date +%F`-output.log
Nella cartella locale ho 2019-09-25-output.log
mv server.log logs/$(date -d "today" +"%Y%m%d%H%M").log
Un metodo a riga singola all'interno di bash funziona così.
[alcuni out put]>$(date "+%Y.%m.%d-%H.%M.%S").ver
creerà un file con un nome timestamp con estensione ver. Un file di lavoro che elenca un'istantanea di un nome di file con data e ora come segue può mostrare che funziona.
find . -type f -exec ls -la {} \; | cut -d ' ' -f 6- >$(date "+%Y.%m.%d-%H.%M.%S").ver
Certo
cat somefile.log > $(date "+%Y.%m.%d-%H.%M.%S").ver
o ancora più semplice
ls > $(date "+%Y.%m.%d-%H.%M.%S").ver