Forum Linux.débutant Aide pour script

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
6
mar.
2023

Bonjour,

J'utilise un script pour être notifié de rappels, dont voici la ligne qui me pose problème :


echo "notify-send -t 0 \"${title}\" -i \"$HOME/.face\" && mpg123 \"$/home/arnauld/Musique/alert.mp3\" " | at ${verb} ${temps}

La notification visuelle marche bien, mais la notification sonore ne fonctionne pas.

Où ai-je fait une erreur ?

Merci.

  • # Vérifie le chemin du fichier mp3

    Posté par  (site web personnel) . Évalué à 5.

    Tu as écrit ça :

    $/home/arnauld/Musique/alert.mp3
    

    Ça serait pas plutôt ça ?

    /home/arnauld/Musique/alert.mp3
    

    Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

    • [^] # Re: Vérifie le chemin du fichier mp3

      Posté par  . Évalué à 1.

      Alors j'ai essayé : echo "notify-send -t 0 \"${title}\" -i \"{mathjax} HOME/.face\" && mpg123 \"/home/arnauld/Musique/alert.mp3\" " | at{verb} ${temps}

      Mais pas de son non plus.

      arnauld

      • [^] # Re: Vérifie le chemin du fichier mp3

        Posté par  . Évalué à 1. Dernière modification le 07 mars 2023 à 12:06.

        Peut-être un double-quote en trop avant le pipe.
        Peut-être il faut échapper le AND : "\&\&" .

        Marche chez moi sans option à mpg123…

        Enfin c'est ennuyeux pour arrêter le son. As-tu essayé --hint=string:sound-file:/home/arnauld/Musique/alert.mp3 ? (Ça, ça ne marche pas chez moi par contre)

      • [^] # Re: Vérifie le chemin du fichier mp3

        Posté par  . Évalué à 1. Dernière modification le 07 mars 2023 à 12:25.

        -h string:sound-name:dialog-error produit du son par contre…

    • [^] # Re: Vérifie le chemin du fichier mp3

      Posté par  . Évalué à 1.

      Quand je fais

      mpg123 /home/arnauld/Musique/alert.mp3 
      

      dans un terminal j'ai le son. Je pense que c'est une erreur de syntaxe dans mon script…

      arnauld

      • [^] # Re: Vérifie le chemin du fichier mp3

        Posté par  . Évalué à 2.

        la commande at qui pose problème ?
        manpage de la commande at

      • [^] # Re: Vérifie le chemin du fichier mp3

        Posté par  . Évalué à 6. Dernière modification le 06 mars 2023 à 19:42.

        Arf …. je crois que j'ai compris : il faut spécifier je pense un canal de sortie.

        manpage mpeg123:

        -o module, --output module
        Select audio output module. You can provide a comma-separated list to use the first one that works.

        A vérifier, mais je pense que quand tu utilises un terminal, dans un environnement de bureau, mpg123 va savoir quel module utiliser en sortie (je ne sais pas par quelle "magie), mais que dans un script déclenché en cron ou sans terminal attaché, (ou sur un terminal autre qu'un terminal de ton environnement graphique) il ne saura pas.

        • [^] # Re: Vérifie le chemin du fichier mp3

          Posté par  (site web personnel, Mastodon) . Évalué à 3.

          Il y a deux paramètres à vérifier : le périphérique de sortie (-a) et le module de sortie (-o)
          Mais le souci peut venir d'ailleurs, notamment pulseaudio qui nécessite que l'usager soit connecté et ait un environnement bien configuré .

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: Vérifie le chemin du fichier mp3

        Posté par  . Évalué à 0. Dernière modification le 06 mars 2023 à 19:45.

        Bonjour

        erreur => message à supprimer.
        Désolé.

      • [^] # Re: Vérifie le chemin du fichier mp3

        Posté par  . Évalué à 2.

        en fait l'option --hint de notify-send n'a l'air de fonctionner qu'avec des .wav ou des .oga … si tu tiens vraiment à jouer des .mp3 au lieu de les convertir (3s de ffmpeg ça va vite pour un son d'alerte), dis-moi quand-même si \&\& règle ton problème stp

  • # a tout hasard

    Posté par  . Évalué à 4.

    Dans la veine "verifier le chemin…", je crois bien que la premiere chose a faire est de remplacer la commande mpg13 par le chemin complet vers l'executable.
    Le "echo" passe car c'est un shell builtin, mais pour mpg123, comme on dit par chez nous: path le chemin!

    ++
    Gi)

  • # ChatGPT donne:

    Posté par  . Évalué à -1. Dernière modification le 07 mars 2023 à 17:00.

    echo "notify-send -t 0 '${title}' -i '$HOME/.face' && mpg123 '/home/arnauld/Musique/alert.mp3'" | at ${verb} ${temps}

    Je serais curieux de savoir si ça fonctionne!

    • [^] # Re: ChatGPT donne:

      Posté par  . Évalué à 1.

      Bonjour,

      Non, cela n'a pas marché, ni avec un .wav, ni avec un .mp3.

      Merci.

      arnauld

  • # des remarques sur la forme ;)

    Posté par  . Évalué à 5.

    beaucoup trop de \ dans la commande…

    je conseille d'utiliser les ' pour plus de lisibilité à l’intérieur des "" les variables sont interprétées au moment de la commande echo vu que tu as mis des "", inutile de laisser le shell réinterpréter des variables déjà remplacées

    echo "notify-send -t 0 '${title}' -i '$HOME/.face' && mpg123 '/home/arnauld/Musique/alert.mp3' " | at ${verb} ${temps}

    déjà on se tue moins les doigts à taper \
    ensuite si ne notify-send échoue tu ne lance pas le mpg123, le ; à la place de && me semble mieux
    il y'a le $ en trop sur le nom de ficher

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: des remarques sur la forme ;)

      Posté par  . Évalué à 1.

      Ne marche pas non plus.

      arnauld

    • [^] # Re: des remarques sur la forme ;)

      Posté par  (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 12 mars 2023 à 18:29.

      J'irai un peu plus loin :

      echo "notify-send -t 0 '${title}' -i '$HOME/.face' && mpg123 '$HOME/Musique/alert.mp3' " | at ${temps}

      …en prenant soin de mettre le chemin complet vers notify-send et mpg123 ainsi que at qui a l'air particulier ici.
      Je suis sceptique par rapport au at $verb $temps C'est quoi comme distribution ?

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: des remarques sur la forme ;)

        Posté par  . Évalué à 1.

        C'est quoi comme distribution ?

        C'est Manjaro Xfce.

        en prenant soin de mettre le chemin complet vers notify-send et mpg123

        C'est à dire comme ça ?

        .... && /usr/bin/mpg123 '`{mathjax} HOME/Musique/alert.mp3' " | at `{temps}
        

        arnauld

        • [^] # Re: des remarques sur la forme ;)

          Posté par  (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 13 mars 2023 à 23:46.

          Hello,

          Oui /usr/bin/mpg123 (mais à cet emplacement la commande devrait être trouvée, donc c'est peut-être pas le souci et il reste la piste déjà évoquée des options)
          Je pense qu'il faut essayer juste avec la partie audio pour voir si ça marche bien

          echo "/usr/bin/mpg123 '$HOME/Musique/alert.mp3' " | at ${temps}

          J'ai demandé la distribution parce-que je trouve surprenant le

          at ${verbe} ${temps}

          …mais on n'a pas tout le contexte.

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.