Chargement...
 
Skip to main content

Historique: Scripts bash par cjpsimon

Aperçu de cette version: 5

Dans la foulée des scripts de lancement donnés par Tumulte et pour faire suite au tuto Associer deux cartes son avec Jack, voici à titre d'exemple complet les scripts de lancement qui permettent de choisir les cartes en capture et en playback ainsi que les applications à lancer.

Le premier script (s2c.bash pour Start 2 Cartes)) utilise la commande sed pour connaître la liste des cartes son ainsi que les scripts de lancement d'applications. Pour l'IHM simplifiée il utilise zenity voir l'exemple Scripts bash par Tumulte (par Tumulte).

Son rôle est de choisir une carte en capture, une carte en playback et un script de lancement d'application à l'aide de trois dialogues successifs puis de lancer le script d'application avec en paramètres les deux cartes choisies.
Tout le traitement est délégué aux scripts de lancement d'application, ce qui permet de rester très général.

Les autre scripts sont les scripts de lancement des applications.

Le principe est de définir des scripts de lancement dans des fichiers ayant un nom répondant à la syntaxe suivante :
s2c_*.bash ou * est remplacé par le nom de l'application à lancer, par exemple mon script de lancement d'Audacity aura pour nom s2c_Audacity.bash.

Les scripts de lancement doivent être placés dans un répertoire précis pour pouvoir les localiser. J'ai choisi le répertoire ~/bin qui chez moi est dans le PATH, ce qui permet de lancer mes applications préférées. Mais rien n'empêche de choisir un autre emplacement.

Les scripts de lancement d'application ont la charge de lancer tout ce qui est nécessaire à la bonne exécution d'une ou des applications (lancer jackd, meterbridge, Audacity... et autres). Je donne pour exemple s2c_Audacity.bash mais on peut faire ce qu'on veut dès lors qu'on a besoin d'associer deux cartes son.

En fin de page on trouvera quelques informations sur l'utilisation de la commande sed.

Le script s2c.bash

Copy to clipboard


Le script s2c_Audacity.bash

Ce script peut être lancé par un autre script ou manuellement pourvu qu'on lui passe en paramètre la carte son en capture et la carte son en playback.

Par exemple :

s2c_Audacity.bash 1 3
ou
s2c_Audacity.bash CODEC Pro

Copy to clipboard


La partie délicate est l'utilisation de sed qui est assez complexe car très puissant. Sed a pour avantage la concision, ce qui permet de faire en une ligne l'équivalent de plusieurs dizaines de lignes de script.

Par exemple la commande :
Copy to clipboard
sed '/ /d' /proc/asound/cards >${les_cartes_brutes}

permet d'éliminer les lignes en trop du fichier /proc/asound/cards.

Sed lit les lignes du fichier et s'il rencontre une suite de blancs, élimine la ligne. Le résultat final est stocké dans le fichier dont le nom est contenu dans la variable ${les_cartes_brutes}.

La commande :
Copy to clipboard
sed '{s/ //; s/\[//; s/\]://; s/ - .*$// }' ${les_cartes_brutes} > ${les_cartes}

Elimine le premier blanc des ligne
Copy to clipboard
s/ //
élimine le caractère
Copy to clipboard
s/\[//
élimine les caractères" rel="">
Copy to clipboard
s/\[//
élimine les caractères
:
Copy to clipboard
s/\]://
puis élimine depuis les caractères " - " jusqu'à la fin de la ligne ".*$" avec
Copy to clipboard
s/ - .*$//

En fait la commande s/c// remplace le caractère c par rien. La syntaxe est la suivante : s/chaine à trouver/chaine à substituer/

Les caractères ésotériques :
Copy to clipboard
.*$
signifient tous les caractères jusqu'à la fin de la ligne.

Pour se documenter sur sed : http://www.grymoire.com/Unix/Sed.html en anglais,
et entre autre : http://www.commentcamarche.net/faq/5588-sed-substitution en français.


[+]

Historique

Avancé
Information Version
Fri 06 Nov 2015 14:47 olinuxx Recherche et remplacement en masse 7
Afficher
Wed 27 Feb 2013 22:16 utilisateur_anonyme2 6
Afficher
Sat 19 mai 2012 19:51 pianolivier renommage de la page +alias(Script lancer des application avec deux cartes son) 5
Afficher
Mon 09 Apr 2012 16:39 pianolivier +BOX 4
Afficher
Sun 08 Apr 2012 14:58 pianolivier +fil d'ariane 3
Afficher
Sun 08 Apr 2012 13:13 pianolivier suppression de 2 liens internes morts 2
Afficher
Wed 04 Apr 2012 10:26 cjpsimon 1
Afficher