Las pocas líneas que publicaste de tu guión me parecen bien. Probablemente sea algo un poco más profundo.
Necesita encontrar qué línea le está dando este error. Agregar set -xv
en la parte superior de su script. Esto imprimirá el número de línea y el comando que se está ejecutando en STDERR . Esto lo ayudará a identificar en qué parte de su secuencia de comandos obtiene este error en particular.
Por cierto, ¿tienes un shebang en la parte superior de tu guión? Cuando veo algo como esto, normalmente espero que sea un problema con Shebang. Por ejemplo, si tuvieras #! /bin/bash
en la parte superior, pero su intérprete de bash se encuentra en /usr/bin/bash
, verá este error.
EDITAR
Nueva pregunta:¿Cómo puedo guardar el archivo correctamente en primer lugar, para evitar tener que realizar esta corrección cada vez que reenvío el archivo?
Dos formas:
- Seleccione Editar->Conversión EOL->Formato Unix elemento de menú cuando edita un archivo. Una vez que tenga los finales de línea correctos, Notepad++ los conservará.
- Para asegurarse de que todos los archivos nuevos tengan los finales de línea correctos, vaya a Configuración->Preferencias elemento de menú y abra las Preferencias caja de diálogo. Seleccione el Nuevo documento/Directorio predeterminado pestaña. En Nuevo documento y Formato , seleccione Unix boton de radio. Haga clic en Cerrar botón.
Yo uso este comando para simplemente rotar un archivo:
mv output.log `date +%F`-output.log
En la carpeta local tengo 2019-09-25-output.log
mv server.log logs/$(date -d "today" +"%Y%m%d%H%M").log
Un método de una sola línea dentro de bash funciona así.
[alguna salida]>$(fecha "+%Y.%m.%d-%H.%M.%S").ver
creará un archivo con un nombre de marca de tiempo con extensión ver. Una instantánea de la lista de archivos de trabajo a un nombre de archivo de marca de fecha de la siguiente manera puede mostrar que funciona.
find . -type f -exec ls -la {} \; | cut -d ' ' -f 6- >$(date "+%Y.%m.%d-%H.%M.%S").ver
Por supuesto
cat somefile.log > $(date "+%Y.%m.%d-%H.%M.%S").ver
o incluso más simple
ls > $(date "+%Y.%m.%d-%H.%M.%S").ver