Vous n'êtes pas identifié(e).
Hors ligne
notify-send "____" "Début concaténation Artiste: "$Artiste"\n Le: "$list --icon=~/.cargo/songrec.svg
si je ne mets pas un texte ici "____" avant l'autre texte "Début concaténation Artiste: "$Artiste"
le /n n'est pas interprété et il s'affiche Début concaténation Artiste: Pierre \n Le:
si je mets pas un texte ici "____" avant l'autre texte "Début concaténation Artiste: "$Artiste"
il s'affiche Début concaténation Artiste: Pierre
la première option de notify-send c'est le titre et il ne prend que tu texte apparemment
les variables et retour a la ligne ne fonctionne que dans la 2éme option le corps du message
si tu ne veux aucun titre tu met un espace
dans cette ligne
notify-send --urgency=critical "Opération terminée"\n "fichier créé:/home/jojo/JM/Chansons_CD/liste_recap_$Artiste.txt"
la ligne est bien sautée mais il est affiché mais le n est affiché après terminée
oui le n est considéré comme fessant parti du titre de se que je vois il est affiché en gras, se retour a la ligne est de trop car après le titre il y aura retour a ligne
(met le code avec les balises code c'est plus clair et facile à lire)
Dernière modification par Croutons (22-02-2024 13:37:30)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
autre souci avec le sed
j'aimerais mettre en variable au début de mes fichiers album le nom de l'artiste
sed -i 1i\$texte$Artiste*.txt
j'ai essayé plein de trucs pas moyen , je n'arrive pas à inscrire le contenu de la variable artiste
je l'ai mis avec la commande echo
echo $texte |tee -a $Artiste*.txt
mais le nom de l'artiste apparait en fin de liste
oui tee option -a pour append , donc logique que ça soit ajouté a la fin
la syntaxe c'est
par contre un script c'est fait pour automatiser, si tu dois l'éditer sans arrêt pour changer ta variable Artiste c'est pas super
tu devrais mettre en début de script Artiste=$1 ($1 le premier paramètre passé au script)
puis utiliser le script dans ton terminal
exemple pour Sardou
le parametre $1 (Sardou) sera stocké dans la variable Artiste
autre méthode , utiliser read dans le script pour demander a l'utilisateur le nom de l'Artiste, la réponse sera stocké dans la variable Artiste
pour contrôler le résultat de la syntaxe de tes scripts
pour voir le déroulé
un outil qui contrôle la syntaxe des script et conseille les bonne pratique
Dernière modification par Croutons (22-02-2024 17:52:31)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
sed -e 1i\ $(echo $texte) $Artiste*.txt
quote]
ça a marché mais avec sed -i 1i\ $(echo $texte) $Artiste*.txt
sed -e 1i\ $(echo $texte) $Artiste*.txt
le Artiste c'est pas super
je ne sais pas lancer le script du terminal
ojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ recap_artistes Pierre
recap_artistes : commande introuvable
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ recap_artistes.sh Pierre
recap_artistes.sh : commande introuvable
read -p 'indiquer le nom de l'Artiste pour la liste récapitulative : ' Artiste
je n'ai pas réussi même avec doublecote et en enlevant la cote (l'artiste)
le programme ne demande rien
voir mon script (j'ai mis en commentaire les essais)
Concaténation fichiers albums pour un fichier récap changer Artiste par Anthony par exemple
#Artiste="Pierre"
#Artiste=$1
read -p "indiquer le nom de l Artiste pour la liste récapitulative : " Artiste
Artiste="Pierre"
list=$(date +%d-%m-%y_%H:%M:%S)
nb avec bash
jjojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ bash -x recap_artistes.sh
+ read -p 'indiquer le nom de l Artiste pour la liste récapitulative : ' Artiste
indiquer le nom de l Artiste pour la liste récapitulative : Paul
++ date +%d-%m-%y_%H:%M:%S
+ list=22-02-24_16:15:19
+ cd /home/jojo/JM/Chansons_CD
+ notify-send ' ' 'Début concaténation Artiste: Paul\n Le: 22-02-24_16:15:19' '--icon=~/.cargo/songrec.svg'
+ texte=______________________Paul____________________________________
++ echo ______________________Paul____________________________________
+ sed -i '1i ______________________Paul____________________________________' 'Paul*.txt'
sed: impossible de lire Paul*.txt: Aucun fichier ou dossier de ce type
+ sed -i 1i_ 'Paul*.txt'
sed: impossible de lire Paul*.txt: Aucun fichier ou dossier de ce type
+ cat 'Paul*.txt'
cat: 'Paul*.txt': Aucun fichier ou dossier de ce type
+ paplay /home/jojo/JM/Linux/SONS/tada.wav
+ notify-send --urgency=critical 'Opération terminée JM' 'fichier créé:/home/jojo/JM/Chansons_CD/liste_recap_Paul.txt'
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$
Hors ligne
Hors ligne
soit chemin complet
edit: mauvaise syntaxe, c'est entouré de double guillemet
Sardou puis Entrée
Dernière modification par Croutons (22-02-2024 17:51:31)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
Hors ligne
les variables d’environnement
Pourquoi as tu écrit écho $Artiste
juste pour montre que la variable Artiste contient Sardou
Dernière modification par Croutons (22-02-2024 20:04:40)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
Hors ligne
Hors ligne
Hors ligne
echo 'export PATH="$HOME/.cargo/bin:$PATH"' | tee -a ~/.profile ~/.bashrc
faut il une cote de fin ? avant le | tee -a ~/.profile ~/.bashrc ?
echo 'export PATH="$HOME/.cargo/bin:$PATH"' | tee -a ~/.profile ~/.bashrc
si je veux inscrire mon path
soit je fais
export PATH="$HOME/.JM/analyse/bat:$PATH" | tee -a ~/.bashrc
soit j'ajoute avec l'éditeur en fin du fichier bashrc
la ligne
export PATH="$HOME/.JM/analyse/bat:$PATH"
est-ce necessaire de corriger profile? qui se termine pareil que bashrc
**************
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
export PATH="$HOME/.cargo/bin:$PATH"
***************************
Hors ligne
Sinon si je saisis ./recap_artistes.sh en me positionnant dans mon répertoire où se trouve mon script ça devrait marcher ?
oui
Pourquoi en cliquant sur mon script, la commande Fread n est pas exécutée alors que le script est bien lancé , et les commandes notifysend s exécutent bien !!
parce que le script s’exécute en arrière plan , c'est pour ça que on ne voit pas les messages affiché avec echo
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ echo $PATH
/home/jojo/.cargo/bin:/home/jojo/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ok faut que je vérifie mais je crois bien que l'append vers le fichier ~/.profile pendant l'installation de songrec était de trop
mais qui a deroulé le détail du processus de songrec sur la console
normalement non, la sortie n'est pas envoyé sur l'entrée standard(écran) mais vers un fichier temporaire , qui sert pour récupéré les informations
des variables titre,interprete,album
Autre question ,comment interrompre le traitement (avec un kill?)
plusieurs manière de faire, mais killall c'est facile a ce rappeler
pour ajouter dans le PATH , soit tu procede comme pour l'installation de songrec
avec export et tee
ou tu édites ~/.bashrc et tu complètes la ligne qui contient PATH
mais les répertoires dans le PATH sont des répertoire spécifique, qui normalement respecte la hiérarchie du système de fichiers
en mettant tes scripts dans des sous répertoires que toi seul comprend tu as pas fini d'allonger le PATH
a la longue je ne sais pas quel incidence peut avoir une tel pratique sur les performances du système
Dernière modification par Croutons (23-02-2024 10:09:50)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
mais qui a deroulé le détail du processus de songrec sur la console
normalement non, la sortie n'est pas envoyé sur l'entrée standard(écran) mais vers un fichier temporaire , qui sert pour récupéré les informations
des variables titre,interprete,album
c'est pourtant ce qui se passe !!!
Pourquoi en cliquant sur mon script, la commande Fread n est pas exécutée alors que le script est bien lancé , et les commandes notifysend s exécutent bien !!
parce que le script s’exécute en arrière plan , c'est pour ça que on ne voit pas les messages affiché avec echo
on ne peut pas y contourner ? (en modifiant le script) ou en essayant de visualiser l'arrière plan?
je vais garder mes scripts avec fread mais pour celui qui execute songrec,je vais mettre la variable artiste "avec l'editeur" avant le fread et lancer ce script en cliquant dessus,et non via le lanceur du bureau, car 23 chansons ,ça donnerait un maximum de lignes sur le terminal
y aurait il un paramètre à mettre dans le lanceur ou dans le script lui meme pour ne pas avoir le déroulé sur l'écran (pour ma doc personnelle,j'ai bien compris la leçon, Fread, lancement via terminal,lancement via un raccourci lanceur, lancement en cliquant sur le script)
Hors ligne
à la place tu rediriges dans le fichier avec un chevron, un seule chevron écrasera le fichier temporaire a chaque tour de boucle
ça fait plus propre c'est sur
on ne peut pas y contourner ? (en modifiant le script) ou en essayant de visualiser l'arrière plan?
on peut contourner, mais ça dépend du terminal utiliser, au lieu de lancer le script ouvrir le terminal avec une option
souvent -e ou -x
exemple sous Mate j'avais un script avec une variable a entrer avec read -p
sur la ligne du lanceur j'ai
avec le terminal actuel (terminator) , c'est la même option -x
Dernière modification par Croutons (24-02-2024 18:19:54)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
Hors ligne
Dernière modification par Croutons (24-02-2024 09:05:04)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
Hors ligne
d'apres le lien çà a l'air de fonctionner sans le -x , à vérifier
voir ici
https://forum.ubuntu-fr.org/viewtopic.php?id=2039999
https://debian-facile.org/viewtopic.php … 43#p333043
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
gnome-terminal -- bash -c "artistes_album_cpt.sh; bash"
[Desktop Entry]
où placer cette ligne?
c'est pour éviter le deroulé verbeux ?
c'est pour avoir la commande fread ?
je ne sais plus
pour l'instant
mes scripts passent bien en mode terminal
le 1ER mais il affiche ledéroulé
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ ./artistes_album_cpt.sh
indiquer le nom de l Artiste pour la creation de l'album : voulzy
{
"location": {
"accuracy": 0.01,
Le 2ième
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ ./recap_artistes.sh
indiquer le nom de l Artiste pour la liste récapitulative : voulzy
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$
il marche nickel
Q
quant aux lanceurs
Name=Album
Exec=sh -ic "~/JM/analyse/bat/artistes_album_cpt.sh ; exec bash"
Comment=
Terminal=true
Icon=cinnamon-panel-launcher
Type=Application
Name[fr_FR]=Album
et
[Desktop Entry]
Name=CONCAT
Exec=sh -ic "~/JM/analyse/bat/recap_artistes.sh ; exec bash"
Comment=
Terminal=true
Icon=cinnamon-panel-launcher
Type=Application
Name[fr_FR]=concat
ils marchent, mais ils ouvrent un terminal et pour album il y a le deroulé
mais ils passent en arrière plan la question fread (que j'ai donc mis en commentaire)
je pense que je vais en rester là
car avec mes scripts il suffit de corriger une donnée et de le lancer via l'explorateur
j'ai bien compris les passations de paramètres (via $1, et via la demande fread)
s'il faut lancer un script via un terminal en donnant le paramètre, c'est plus fastidieux que de corriger le fichier script via l'explorateur et de cliquer dessus
j'aurais aimé pouvoir lancer les script via un lanceur sur lebureau et qu'il me demande d'entrer le paramètre (via le fread contenu dans le script)
merci en tous cas
je ne vais pas tarder à clore la discussion
Hors ligne
pour l'histoire du terminal verbeu , voir mon message #115
Dernière modification par Croutons (24-02-2024 16:18:08)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
do songrec audio-file-to-recognized-song "$line">tee /tmp/songrec.json
mon script artistes_album_cpt.sh
#!/bin/bash
#reconnaissance audio d'un cd exotique, fichier non taggués,
# Il faut corriger la Variable Artiste , sur la ligne suivante
Artiste="Cabrel"
#read -p "indiquer le nom de l Artiste pour la creation de l'album : " Artiste
notify-send "Artiste= " $Artiste
max_fichier=$(ls /run/user/1000/gvfs/cdda:host=sr0/|wc -l)
list=$(date +%d-%m-%y_%H:%M:%S)
notify-send "Songrec" "Début du processus de reconnaissance Artiste: "$Artiste"\n Le: "$list --icon=~/.cargo/songrec.svg
cd /run/user/1000/gvfs/cdda:host=sr0/
while read -r line
#do songrec audio-file-to-recognized-song "$line"|tee /tmp/songrec.json
do songrec audio-file-to-recognized-song "$line">tee /tmp/songrec.json
album=$(grep -B1 Album /tmp/songrec.json|awk '/"text"/ {sub(/",.*/, ""); print substr($0,22)}')
interprete=$(awk '/"subtitle"/ {sub(/",.*/, ""); print substr($0,18)}' /tmp/songrec.json)
titre=$(awk '/"title".*",/ {sub(/",.*/, ""); print substr($0,15)}' /tmp/songrec.json)
echo "titre-"$titre"___interprete-"$interprete"""____album-"$album|tee -a /home/jojo/JM/Chansons_CD/"$Artiste$list".txt
liste_fichier=$(cat /home/jojo/JM/Chansons_CD/"$Artiste$list".txt|wc -l)
#restant=$(($max_fichier-$liste_fichier))
notify-send $Artiste" Lecture du titre: "$liste_fichier" sur "$max_fichier --icon=~/.cargo/songrec.svg
done <<<$(ls -UN1 /run/user/1000/gvfs/cdda:host=sr0/|grep .wav)
paplay /home/jojo/JM/Linux/SONS/tada.wav
#paplay /home/jojo/JM/Linux/SONS/dangers.ogg
notify-send --urgency=critical "Songrec" "Fin" --icon=~/.cargo/songrec.svg
notify-send --urgency=critical "Songrec" "Opération terminée\nfichier créé:\n/home/jojo/JM/Chansons_CD/"$Artiste$list".txt"
eject
si je le lance en cliquant dessus
il crée le fichier incomplet Cabrel24-02-24_17:43:56.txt (avec une seule ligne,car le songrec ne s'execute pas totalement)
titre-___interprete-____album-
et en lancement du terminal
jojo@jojo-Aspire-7720Z:~$ cd /home/jojo/JM/analyse/bat
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$ ./artistes_album_cpt.sh
./artistes_album_cpt.sh: ligne 13: tee: Opération non supportée
grep: /tmp/songrec.json: Aucun fichier ou dossier de ce type
awk: fatal : impossible d'ouvrir le fichier « /tmp/songrec.json » en lecture (Aucun fichier ou dossier de ce type)
awk: fatal : impossible d'ouvrir le fichier « /tmp/songrec.json » en lecture (Aucun fichier ou dossier de ce type)
titre-___interprete-____album-
jojo@jojo-Aspire-7720Z:~/JM/analyse/bat$
Hors ligne
ça devrait être mieux
c'est soit l'un soit l'autre , mais le chevron + tee , il est pas content
enfin a par ça y'a plus l'autre message d'erreur sur le lanceur c'est plutôt bon signe
Dernière modification par Croutons (24-02-2024 18:30:27)
-->les cahiers du debutant<-- WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde
Hors ligne
Hors ligne
Hors ligne