Bonjour,
Je suis sous Lubuntu.
Sous root, j'ai mis le script ci-dessous dans un fichier "cartes_audio.sh" à cette adresse : /user/bin/cartes_audio.sh
#!/bin/bash
echo "liste des cartes son :"
pacmd list-sinks
pulseaudio --dump-conf
1) j'ai coché "rendre le script exécutable" dans l'onglet "Propriétés" du fichier, mais il ne s'exécute pas quand je clique dessus et que je choisi "exécuter" ou "ouvrir dans un terminal". Dans ce second cas, j'ai un message d'erreur :
"failed to execute child process "xterm" (aucun fichier ou dossier de ce type)"
2) je voudrais également créer un raccourci depuis le bureau pour lancer le script. Comment procéder ?
Dans /usr/bin, tu n'as pas les droits pour faire des modifs en tant qu'utilisateur normal, donc si tu as voulu rendre le script exécutable via les propriétés du fichier quand il était à cet endroit, c'est normal. Essaie avec les droits admin (sudo) :
sudo chmod +x /usr/bin/cartes_audio.sh
Ensuite, étant donné qu'il est dans un dossier du PATH, tu auras juste besoin de taper son nom pour le lancer :
cartes_audio.sh
Accessoirement, ce serait peut-être mieux de le mettre dans /usr/local/bin que dans /usr/bin pour un script perso.

Concernant le bureau, tu peux créer un raccourci mais ça ne va pas être très utile, étant donné que c'est un script qui ne fonctionnera que depuis un terminal. Et comme tu peux taper son nom directement, il n'y a pas vraiment d'intérêt à le mettre là. Mais si tu veux quand même le faire, tu peux créer un lien symbolique :
ln -s /usr/bin/cartes_audio.sh ~/Bureau/cartes_audio.sh
Bonjour,

Dans le doute est-ce /usr/bin ou bien un dossier que tu as crées dans ton $HOME /user/bin. Car tu indiques /user et non /usr, c'est pour savoir si abelthorne fait fausse route ou non.
S'il s'agit bien du second cas, je vois 2 choses de possible. Soit installer xterm, soit créer un lien symbolique xterm qui pointe vers lxterminal. Pour savoir ce que tu as actuellement:
ls -l /usr/bin/xterm
(J'ai bien noté que c'était /user/bin mais je suis parti du principe que c'était une faute de frappe.)
(oui je le suppose aussi vu que c'est précisé "Sous root" mais mieux vaut en être sûr 😉 )
@Auguste19 : Si tu es le seul utilisateur de ce script, tu devrais plutôt le mettre chez toi, dans $HOME/bin.
Oui, c'est bien une erreur de syntaxe, désolé ! Il fallait bien lire "usr".

Sinon, j'ai fait les commandes conseillées par abelthorne (cmod puis le nom du fichier dans le terminal) mais j'ai un message d'erreur :
bash: /usr/bin/cartes_audio.sh : /user/bin/bash : mauvais interpréteur: Aucun fichier ou dossier de ce type
Du coup de je me demande si quelque chose cloche dans le Sheban que j'ai mis un peu au hasard dans le script, sans trop savoir si ça correspondait aux instructions.

Quant au raccourci, je précise que j'aimerais lancer le script et obtenir le résultat du script sans avoir à taper quoi que ce soit dans le terminal, sinon à quoi bon un raccourci en effet. Mais je ne sais pas si c'est possible.
Si tu es le seul utilisateur de ce script, tu devrais plutôt le mettre chez toi, dans $HOME/bin.
@kamris :
Oui, en fait j'ai d'abord essayé de le mettre en tant que simple utilisateur, mais ça ne fonctionnait pas, j'ai pensé que root serait plus efficace : réaction naïve de débutant 😉
Auguste19 a écritSinon, j'ai fait les commandes conseillées par abelthorne (cmod puis le nom du fichier dans le terminal) mais j'ai un message d'erreur :
bash: /usr/bin/cartes_audio.sh : /user/bin/bash : mauvais interpréteur: Aucun fichier ou dossier de ce type
Du coup de je me demande si quelque chose cloche dans le Sheban que j'ai mis un peu au hasard dans le script, sans trop savoir si ça correspondait aux instructions.
Sheban ? EDIT : ah, apparemment tu parles du shebang (dont j'ignorais le nom), qui est le #! qu'il y a au début.

Il y a quand même un truc pas clair : est-ce que tu pourrais faire un copier/coller du message d'erreur que tu obtiens ? parce que ça me semble impossible qu'il te parle d'un /user/bin/bash, donc je suppose que tu l'as recopié en faisant à nouveau une faute de frappe. Et du coup, il y en a peut-être une supplémentaire, parce que ça devrait être /bin/bash (qui est déclaré au début). Et si c'est bien /bin/bash dont il se plaint, il y a un problème, ça signifierait que bash n'est pas installé sur ton système (alors qu'il l'est de base). Tandis que s'il se plaint de /usr/bin/bash, je ne comprends pas bien pourquoi il va le chercher là...

Au cas où, donne aussi le retour de :
cat /usr/bin/cartes_audio.sh
Je suis un âne bâté !
Le message d'erreur est exactement ce que j'ai recopié en gras. Ce dont il se plaint c'est de l'entête du fichier que j'avais modifié après mon premier post. J'avais fait la même coquille que précédemment : #!/user/bin/bash
Vraiment excusez-moi...
J'ai corrigé en #!/usr/bin/bash et maintenant le script affiche bien le résultat dans le terminal, mais il faut tout de même que je rentre les deux instructions manuellement : cmod et le nom du fichier.
Est-il possible de s'en passer pour qu'un simple clic affiche directement le résultat du script ?
Auguste19 a écritJ'ai corrigé en #!/usr/bin/bash et maintenant le script affiche bien le résultat dans le terminal, mais il faut tout de même que je rentre les deux instructions manuellement : cmod et le nom du fichier.
Attention, c'est /bin/bash, pas /usr/bin/bash. En tout cas, sur Ubuntu, bash est dans /bin, pas /usr/bin.
Concernant le chmod, il n'est à faire qu'une fois, c'est pour rendre le script exécutable.
Est-il possible de s'en passer pour qu'un simple clic affiche directement le résultat du script ?
Tu veux dire en double-cliquant sur le script que tu as copié/lié sur ton bureau ? Non, parce que les commandes qu'il lance ne fonctionnent qu'en étant lancées depuis un terminal. Si tu le lances depuis l'interface graphique, il va simplement ne rien faire (enfin, il va exécuter les commandes dans le vide).
Ça devrait être possible de faire un lanceur qui ouvre automatiquement un terminal pour exécuter le script mais je ne suis pas sûr qu'il reste ouvert ensuite.
Attention, c'est /bin/bash, pas /usr/bin/bash. En tout cas, sur Ubuntu, bash est dans /bin, pas /usr/bin.
Je viens de vérifier et je confirme, c'est bien "/usr/bin/bash". Par contre je vois qu'il y a un raccourci dans "usr" qui pointe vers "bin", peut-être que "/bin/bash" fonctionne aussi ? Sinon pourquoi ce raccourci ?
Concernant le chmod, il n'est à faire qu'une fois, c'est pour rendre le script exécutable.
Ok, je prends note, merci.
Ça devrait être possible de faire un lanceur qui ouvre automatiquement un terminal pour exécuter le script mais je ne suis pas sûr qu'il reste ouvert ensuite.
S'il y a une possibilité, j'essaierai volontiers. (L'idée est d'avoir un lanceur qui affiche rapidement un certain nombre de paramètres pour effectuer différents tests.)
Est-ce que xtem permettrait de faire cela ? (il n'est installé sur Lubuntu.)
C'est bizarre cette histoire de raccourci : personnellement, dans /usr, bin est un dossier, pas un lien. Et dans /usr/bin, il n'y a aucun lien vers bash.

Pour un lanceur, essaie de créer un fichier texte comme ça (je crois que l'éditeur est leafpad si tu es sur Lubuntu, adapte si ce n'est pas le cas) :
leafpad ~/Bureau/cartes_audio.desktop
dans l'éditeur, colle ça :
[Desktop Entry]
Name=Cartes audio
Exec=cartes_audio.sh
Type=Application
Terminal=true
Enregistre. Rends-le exécutable au cas où (je ne sais plus si c'est indispensable) :
chmod +x ~/Bureau/cartes_audio.desktop
Tu devrais voir un "Cartes audio" sur le bureau. Double-clique dessus pour le lancer. Normalement, il devrait ouvrir un terminal mais il va peut-être se refermer aussitôt.

Concernant xterm, c'est un terminal basique. Il n'est pas vraiment utile, tu en as un autre plus performant d'installé (lxterminal).
abelthorne a écritC'est bizarre cette histoire de raccourci : personnellement, dans /usr, bin est un dossier, pas un lien. Et dans /usr/bin, il n'y a aucun lien vers bash.
Mea culpa : en effet c'est un dossier, la petite flèche dans le coin supérieur gauche m'avait fait penser à un raccourci (mais que signifie cette flèche ?). Je découvre...
Donc finalement j'ai deux fichiers bash : /usr/bin/bash ET /bin/bash
Ils sont identiques dans leurs propriétés. Pourquoi deux ? Je ne comprends pas trop...

je vais tester ta solution lanceur, merci bien !
Moi non plus, bash n'est pas censé être dans /usr/bin... Que donne le retour de cette commande ?
ls -l /usr/bin | grep bash
abelthorne a écritTu devrais voir un "Cartes audio" sur le bureau. Double-clique dessus pour le lancer. Normalement, il devrait ouvrir un terminal mais il va peut-être se refermer aussitôt.
Oui, tout c'est passé comme prévu (avec featherpad comme éditeur), j'ai vu un terminal blanc, mais qui se referme en un éclair, comme tu l'avais prédit.
Bon, sinon j'ai vu dans la liste des terminaux "Zenity" pour faire des boîtes de dialogue. Je pourrais peut-être bricoler quelque chose à partir de ça ?
Zenity peux faire des boîtes de diaglogue pour sélectionner des options, ce genre de chose, mais je ne pense pas que tu auras la possibilité d'avoir une sortie avec des commandes qui reste.
Pour la persistance du terminal, essaie ça dans le fichier .desktop :
[Desktop Entry]
Name=Cartes audio
Exec=sh -c 'cartes_audio.sh; bash'
Type=Application
Terminal=true
kamaris a écritPour la persistance du terminal, essaie ça dans le fichier .desktop :
[Desktop Entry]
Name=Cartes audio
Exec=sh -c 'cartes_audio.sh; bash'
Type=Application
Terminal=true
Merci beaucoup, malheureusement la fenêtre se referme instantanément de la même manière.
Il semble qu'on touche à la limite de ce qu'on peut demander à un terminal, et qu'il faudrait programmer une petite application pour obtenir un affichage persistant et facile à recharger.

Je ne sais pas s'il existe l'équivalent de Visual Basic que j'ai utilisé sous Windows, je vois qu'il y a gambas sous Linux... Mais je ne connais pas du tout, et c'est peut-être disproportionné comme entreprise par rapport à l'enjeu. Disons que, dans l'absolu, ça m'intéresserait de pouvoir bricoler des outils graphiques qui permettent de se passer des lignes de commande, donc si vous avez des pistes je suis preneur.
Bon w.e. !
Non, ce que tu veux faire là est tout à fait basique, et je suis étonné que ce qui figure ci-dessus ne fonctionne pas.
Mais peut-être y a-t-il quelque chose de propre à Lubuntu, dans la manière de lire la ligne Exec= notamment, et aussi de lancer un terminal automatiquement.

Comme autre possibilité, puisque le terminal par défaut de Lubuntu ne semble pas avoir d'option de persistance, tu peux essayer d'installer xterm et de mettre ça dans le .desktop :
[Desktop Entry]
Name=Cartes audio
Exec=xterm -hold -e cartes_audio.sh
Type=Application
Terminal=false