Script bash s'arrête avec message ++ cat
Résolu/FerméLume_56 Messages postés 42 Date d'inscription lundi 1 juin 2020 Statut Membre Dernière intervention 12 novembre 2024 - 5 déc. 2022 à 11:42
- Script bash s'arrête avec message ++ cat
- Message - Guide
- Script vidéo youtube - Guide
- Recuperer message whatsapp supprimé - Guide
- Message d'absence thunderbird - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
4 réponses
Modifié le 30 nov. 2022 à 16:10
Bonjour,
Comme la première ligne contient -vx, bash te dit au fur et à mesure où il en est. Tu peux ne mettre que #!/bin/bash si tu ne veux pas faire apparaître cette information sur le C++. Ce sont ces informations de débogage qui écrivent "++ cat".
Admettons que ton script corresponde au fichier toto.sh dans le dossier courant (= ./toto.sh). Je suppose qu'à ce stade, tu exécutes ton script comme suit :
./toto.sh
Comme l'indique la ligne sur laquelle le programme est bloqué, le programme s'attend à lire du texte sur stdin. Il est donc lancé en mode interactif et attend que tu tapes du texte à traiter.
De deux choses l'unes :
- soit tu l'utilises en mode interactif en tapant du texte (tu peux éventuellement passer à la ligne). Quand tu as fini de taper ton texte, tu appuies sur Ctrl+D pour envoyer le caractère fin de fichier (voir ici), et le programme continuera à se dérouler.
- soit tu utilises ton script à droite d'un pipe où la commande de gauche produit du texte et la commande de droite et ton script :
echo "Bonjour" | ./toto.sh cat /etc/motd | ./toto.sh
Bonne chance
3 déc. 2022 à 18:03
Bonsoir,
Merci pour tes explications toujours aussi claires. J'ai résolu le problème qui n'en était pas un, en réalité.
Concrètement, le script est utilisé pour transcrire le texte en paroles (text to speech) des fichiers au format epub lus avec Foliate https://johnfactotum.github.io/foliate/ .
Un problème m'avait obligé à réinstaller la distribution (par chance, le /home était séparé). Je ne rappelais plus qu'il suffisait de recopier le script ou créer un lien symbolique pointant vers /usr/local.bin. Il suffit ensuite de sélectionner le texte pour qu'il soit lu.
Le programme s'attend à lire du texte sur stdin, ce qui correspond au texte sélectionné !
Avec tous mes remerciements !
5 déc. 2022 à 10:03
Merci pour les précisions, même si je n'ai pas saisi l'intérêt de sélectionner le texte pour le faire lire pour ensuite le retranscrire. Il n'aurait pas été plus direct de faire un copier coller ? En tout cas l'important c'est que tu aies résolu ton problème :)
5 déc. 2022 à 10:56
Il n'y a pas de rapport entre les deux. Dans le premier cas que je t'avais soumis, il s'agissait de retranscrire un texte dicté (mail, esquisse de rapport, prises de notes pour un projet, etc. )
Dans le second, il s'agit de faire lire un texte (personnes malvoyantes ou désireuses d'avoir une "lectrice". Cet aspect est prévu dans le cadre plus large d'une présentation de Linux. Je comprends que tu aies établi une relation entre les deux.
5 déc. 2022 à 11:03
Ah oui d'accord, c'est plus clair maintenant. Peut-être qu'orca peut t'intéresser.
Bonne chance
5 déc. 2022 à 11:42
Merci ! Au plaisir !