Bash: commande introuvable et déclaration de variable

Résolu/Fermé
Coudassee Messages postés 28 Date d'inscription dimanche 18 octobre 2020 Statut Membre Dernière intervention 8 mai 2023 - Modifié le 4 févr. 2022 à 15:23
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 4 févr. 2022 à 15:22
Bonjour,

Je dois faire un exercice mais je ne comprends pas pourquoi le code suivant ne marche pas.
Le programme doit demander à l'utilisateur une heure sous format
heure:minute:seconde
et rajoute une seconde.

Voici le code:

#!/bin/bash

# lecture de la variable instant : à compléter
read instant

# instant est de la forme heure:minute:seconde
# lecture de chaque champ avec la commande cut :
heure=$(echo $instant | cut -d: -f 1)
# a completer pour minute et seconde :
minute=$(echo $instant | cut -d: -f 2)

seconde=$(echo $instant | cut -d: -f 3)

# affichage eventuel de heure minute et seconde pour verifier que tout s'est bien passé. à compléter
echo $heure $minute $seconde 

# ajouter 1 à seconde pour obtenir secondesuiv : à compléter
secondesuiv=$(expr $seconde + 1)

# ajouter minute et secondesuiv/60 pour obtenir minutesuiv : à compléter

minutesuiv = $(expr $minute + $(expr $secondesuiv/60))
# ajouter heure et minutesuiv/60 pour obtenir heuresuiv : à compléter
heuresuiv = $(expr $heure + $(expr $minutesuiv/60))

# affichage eventuel de heuresuiv minutesuiv et secondesuiv pour verifier que tout s'est bien passé. à compléter

echo $heuresuiv $minutesuiv $secondesuiv
# correction des résultats au changement de minute, d'heure et de jour :
# prendre le reste de secondesuiv par 60 (dans secondesuiv par exemple) 
secondesuiv=$(expr $secondesuiv % 60)
# de même pour minutesuiv : à compléter

# trouver par qui prendre le reste pour heuresuiv : à compléter


# affichage de heuresuiv minutesuiv et secondesuiv pour verifier que tout s'est bien passé.



Voici les messages de la console:


8:5:9
8 5 9
expr: argument non entier
./instant_suivant.sh: ligne 22: minutesuiv : commande introuvable
expr: argument non entier
./instant_suivant.sh: ligne 24: heuresuiv : commande introuvable
10


Quelqu'un pour m'aider s'il vous plaît ?

1 réponse

mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
4 févr. 2022 à 15:22
Bonjour,

C'est une erreur de syntaxe. En bash, quand tu déclares une variable, il ne faut pas mettre d'espace autour de l'opérateur
=
.

Bonne chance
0