Les quelques lignes que vous avez postées à partir de votre script me semblent correctes. C'est probablement quelque chose d'un peu plus profond.
Vous devez trouver quelle ligne vous donne cette erreur. Ajouter set -xv
en haut de votre script. Cela imprimera le numéro de ligne et la commande en cours d'exécution sur STDERR . Cela vous aidera à identifier où dans votre script vous obtenez cette erreur particulière.
BTW, avez-vous un shebang en haut de votre script ? Quand je vois quelque chose comme ça, je m'attends normalement à ce que ce soit un problème avec le Shebang. Par exemple, si vous aviez #! /bin/bash
en haut, mais votre interpréteur bash est situé dans /usr/bin/bash
, vous verrez cette erreur.
MODIFIER
Nouvelle question :comment puis-je enregistrer le fichier correctement en premier lieu, pour éviter d'avoir à effectuer ce correctif à chaque fois que je renvoie le fichier ?
Deux manières :
- Sélectionnez Modifier->Conversion EOL->Format Unix élément de menu lorsque vous modifiez un fichier. Une fois qu'il a les fins de ligne correctes, Notepad++ les conservera.
- Pour vous assurer que tous les nouveaux fichiers ont les fins de ligne correctes, accédez aux Paramètres->Préférences élément de menu, et ouvrez les Préférences boite de dialogue. Sélectionnez le Nouveau document/répertoire par défaut languette. Sous Nouveau document et Formater , sélectionnez le Unix bouton radio. Cliquez sur Fermer bouton.
J'utilise cette commande pour faire simplement pivoter un fichier :
mv output.log `date +%F`-output.log
Dans le dossier local, j'ai 2019-09-25-output.log
mv server.log logs/$(date -d "today" +"%Y%m%d%H%M").log
Une méthode à une seule ligne dans bash fonctionne comme ceci.
[une sortie]>$(date "+%Y.%m.%d-%H.%M.%S").ver
créera un fichier avec un nom d'horodatage avec l'extension ver. Un instantané de liste de fichiers de travail vers un nom de fichier d'horodatage comme suit peut montrer qu'il fonctionne.
find . -type f -exec ls -la {} \; | cut -d ' ' -f 6- >$(date "+%Y.%m.%d-%H.%M.%S").ver
Bien sûr
cat somefile.log > $(date "+%Y.%m.%d-%H.%M.%S").ver
ou encore plus simple
ls > $(date "+%Y.%m.%d-%H.%M.%S").ver